我的一些变量的取值范围在1到5之间。如果它们的取值在1到3之间(包括3),我想将它们编码为0,如果它们的取值是4或5,则编码为1。
我的数据集看起来像这样:
var1 var2 var3
1 1 NA
4 3 4
3 4 5
2 5 3
所以我希望它能像这样:
var1 var2 var3
0 0 NA
1 0 1
0 1 1
0 1 0
我尝试编写一个函数并调用它
making_binary <- function (var){
var <- factor(var >= 4, labels = c(0, 1))
return(var)
}
df <- lapply(df, making_binary)
但我遇到了一个错误:不正确的标签:长度为2必须是1或1
我哪里出错了? 非常感谢您的回答!
+
是什么意思? - Stéphane Laurentdf[]
更改为df[, c(1:2)]
。 - Nico