基于逻辑在R中重新编码多个变量

时间:2015-01-21 22:52:53

标签: r plyr apply

我有兴趣看看你是否可以遍历数据集并使用单个函数重新编码变量:

数据看起来像这样:

V1 V2 V3 R1 R2 R3
-----------------
a   r  s  5  5  0
a   b  c  0  1  0
e   r  r  5  6  6

我想重新编码三个R变量。在实际数据集中,至少有50个R变量要重新编码。输出应该看起来像这样,大于0的任何东西应该是1而0仍然是0:

V1 V2 V3 R1 R2 R3
-----------------
a   r  s  1  1  0
a   b  c  0  1  0
e   r  r  1  1  1

2 个答案:

答案 0 :(得分:1)

可以尝试sapply()

(DF是您的数据集)

DF[,4:6]<-sapply(DF[,4:6],function(x)ifelse(x>0,1,0))

答案 1 :(得分:0)

您可以尝试使用-ifelse语句 1)遍历数据集中的所有变量 2)决定它们是否为数字 3)重新编码

像这样:

 for (i in 1:ncol(mydata) {
   if (is.numeric(mydata[,i] == "TRUE" {
      mydata[,i] <- ifelse(mydata[,i] > 0, 1, 0 )
  }
}

希望这有帮助!