我正在做一个项目,将一堆 stata 代码转换为 R 以执行数据清理,我想做的一件事是编写一个 R 函数来清理我之前编码的所有 Yes/No 变量作为(是 = 1,否 = 2)标准虚拟变量。
问题是需要被这个函数清理的变量的数量会不断变化。所以我的猜测是,该函数需要将(1)包含所有变量的数据集/数据框作为其参数,以及(2)需要清理的变量列表。
对此的任何帮助将不胜感激,因为我对 R 很陌生。
谢谢!
我正在做一个项目,将一堆 stata 代码转换为 R 以执行数据清理,我想做的一件事是编写一个 R 函数来清理我之前编码的所有 Yes/No 变量作为(是 = 1,否 = 2)标准虚拟变量。
问题是需要被这个函数清理的变量的数量会不断变化。所以我的猜测是,该函数需要将(1)包含所有变量的数据集/数据框作为其参数,以及(2)需要清理的变量列表。
对此的任何帮助将不胜感激,因为我对 R 很陌生。
谢谢!
sapply(data, function(x) {-x+2})
data
包含您的 1、2 列。匿名函数将所有 Yes/1 转换为 1,将 No/2 转换为 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"))