我想为数据框中的变量添加值标签。但是,变量名称基于子字符串匹配结果。例如,我试图寻找一个名称包含字符串“Gender"”的变量,所以我使用了代码
mn<-grep("Gender",names(data),value=TRUE)
找到变量。
然后我想为该变量添加值标签,我试过:
data$mn<-factor(data$mn,levels=c(2,3),labels=c("Male","Female"))
但它不起作用。有人可以帮我解决问题吗?非常感谢
答案 0 :(得分:1)
如果有多个变量符合&#39;性别&#39;在名称中,我们可以使用lapply
循环它。
data[,mn] <- lapply(data[,mn], function(x)
factor(x, levels=2:3, labels=c('Male', 'Female'))
如果&#39; mn&#39;长度为1,即只匹配一列,我们不需要循环(如@Angela Ju的评论所示)
data[,mn] <- factor(data[,mn],levels=c(2,3),labels=c("Male","Female"))