我正在开发一个项目,将一堆stata代码转换为R来执行数据清理,我正在尝试做的一件事就是编写一个R函数来清除我的所有Yes / No变量先前被编码为(Yes = 1,No = 2)到标准虚拟变量。
问题是这个函数需要清理的变量数量会不断变化。所以我的猜测是该函数需要将所有变量作为参数(1)数据集/数据框,以及(2)需要清理的变量列表。
任何对此的帮助都会非常感激,因为我对R很新。
谢谢!
答案 0 :(得分:0)
sapply(data, function(x) {-x+2})
data
包含您的1,2列。匿名函数将所有Yes / 1转换为1,将No / 2转换为0。
答案 1 :(得分:0)
你可以试试这个:
example <- data.frame(sex=runif(10),q1=rep.int(c(1,2),5),q2=rep.int(c(2,1),5))
yesno <- function(data, variables) {
data.new <- data
data.new[,names(data) %in% variables] <- -data[,names(data) %in% variables]+2
return(data.new)
}
example
yesno(example, c("q1","q2"))