美文网首页
R学习笔记 变量赋值

R学习笔记 变量赋值

作者: 扩容_ | 来源:发表于2019-10-17 21:05 被阅读0次

1、within()

data_3 <- within(data_3,{

zuofenduan <- NA zuofenduan[zuofen>=0 & zuofen<=960] <- 1

zuofenduan[zuofen>960 & zuofen<=1260] <- 2

zuofenduan[zuofen>1260 & zuofen<=1636] <- 3

zuofenduan[zuofen>1636 & zuofen<=2100] <- 4

zuofenduan[zuofen>2100 & zuofen<=4215] <- 5})

2、if 循环 + function

fenduan <- function(data1,var1,num){

    q1 <- as.data.frame(quantile(data1[,var1],probs = seq(0,1,0.2)))

    q2 <- c(q1[1:6,1])

    q2[1] <- 0

    for(i in 1:nrow(data1)){

        if(data1[i,var1]>=0 & data1[i,var1]<=q2[2]) data1[i,num] <- 1

        if (data1[i,var1]>q2[2] & data1[i,var1]<=q2[3]) data1[i,num] <- 2

        if (data1[i,var1]>q2[3] & data1[i,var1]<=q2[4]) data1[i,num] <- 3

        if (data1[i,var1]>q2[4] & data1[i,var1]<=q2[5]) data1[i,num] <- 4

        if (data1[i,var1]>q2[5] & data1[i,var1]<=q2[6]) data1[i,num] <- 5 }

    data1}

# function 应用

www <- "huofenduan"

qqq <- "huofen"

fenduan(data_3,qqq,www)

3、ifelse 赋值

data1$case_bf <- NA  ## 血脂

data1$case_bf <- ifelse(data1$tg>=1.7,1,

                                ifelse(data1$HDL>1,0,

                                    ifelse(data1$SEX==0,1,

                                        ifelse(data1$HDL<0.9,1,0))))

相关文章

网友评论

      本文标题:R学习笔记 变量赋值

      本文链接:https://www.haomeiwen.com/subject/rmxbmctx.html