根据逻辑在 R 中重新编码多个变量
Recode multiple variables in R based on logic
我很想知道您是否可以循环遍历数据集并使用单个函数重新编码变量:
数据将如下所示:
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
你可以试试 -ifelse- 语句
1)遍历数据集中的所有变量
2)决定它们是否是数字
3) 重新编码
像这样:
for (i in 1:ncol(mydata) {
if (is.numeric(mydata[,i] == "TRUE" {
mydata[,i] <- ifelse(mydata[,i] > 0, 1, 0 )
}
}
希望对您有所帮助!
可以试试 sapply()
(DF 是您的数据集)
DF[,4:6]<-sapply(DF[,4:6],function(x)ifelse(x>0,1,0))
我很想知道您是否可以循环遍历数据集并使用单个函数重新编码变量:
数据将如下所示:
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
你可以试试 -ifelse- 语句 1)遍历数据集中的所有变量 2)决定它们是否是数字 3) 重新编码
像这样:
for (i in 1:ncol(mydata) {
if (is.numeric(mydata[,i] == "TRUE" {
mydata[,i] <- ifelse(mydata[,i] > 0, 1, 0 )
}
}
希望对您有所帮助!
可以试试 sapply()
(DF 是您的数据集)
DF[,4:6]<-sapply(DF[,4:6],function(x)ifelse(x>0,1,0))