我有一个名为perceptionAvailInfo的数据框,它有多个列,如下所示 - >
nameslist<-names(perceptionAvailInfo)
nameslist
## [1] "email" "HomeAddress" "HomePhone" "Cellphone"
## [5] "Employer" "PoliticalAffln" "WrittenWorks" "Photo"
## [9] "Video" "Groups" "Birthdate" "sex"
## [13] "age" "employ" "sexLabel" "age_group"
这些列中的每一列(例如:电子邮件)都包含1,2,3,8,9的编码条目,我希望将其重新编码为“是”,“否”等。
我正在尝试使用类似下面的代码来完成这项工作,但我没有看到我需要的结果 - &gt;
for (k in nameslist) {
if (perceptionAvailInfo[[k]] == 1) perceptionAvailInfo[[k]] <-"Yes"
}
用“是”替换值为1的k的所有值的正确语法是什么?
答案 0 :(得分:1)
这样做你是错误的
子集for(k in nameslist)
{
perceptionAvailInfo[k][perceptionAvailInfo[k]==1]<-"Yes"
}
此处不需要if
条件
答案 1 :(得分:1)
我们可以使用recode
中的library(car)
。我们将列(lapply(...
)和recode
1值循环为“是”,其余值为“否”。
library(car)
perceptionAvailInfo[] <- lapply(perceptionAvailInfo, recode, "1='Yes';else='No'")