具有可变数量参数的简单R函数

时间:2014-09-18 17:58:00

标签: r data-cleansing

我正在开发一个项目,将一堆stata代码转换为R来执行数据清理,我正在尝试做的一件事就是编写一个R函数来清除我的所有Yes / No变量先前被编码为(Yes = 1,No = 2)到标准虚拟变量。

问题是这个函数需要清理的变量数量会不断变化。所以我的猜测是该函数需要将所有变量作为参数(1)数据集/数据框,以及(2)需要清理的变量列表。

任何对此的帮助都会非常感激,因为我对R很新。

谢谢!

2 个答案:

答案 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"))