创建R函数,可灵活地引用不同的数据集

时间:2015-06-03 17:44:00

标签: r function naming

我正在尝试在R中创建一个可以引用多个数据集和多个变量名的简单函数。使用以下代码,我收到一个错误,我认为这是由于引用:

set.seed(123)
dat1 <- data.frame(x = sample(10), y = sample(10), z = sample(10))
dat2 <- data.frame(x = sample(10), y = sample(10), z = sample(10))

table(dat1$x, dat1$y)
table(dat2$x, dat2$y)

fun <- function(dat, sig, range){print(table(dat$sig, dat$range))}

fun(dat = dat1, sig = x, range =  y)
fun(dat = dat2, sig = x, range =  y)

知道如何调整此代码以便它可以适当地返回表格吗?

1 个答案:

答案 0 :(得分:3)

数据框上的[[ ]]运算符与$类似,但允许您引入对象并查找其值。然后在函数外部,将“x”值指定给sig。如果你不在那里放置引号,R将寻找x对象

fun <- function(dat, sig, range){print(table(dat[[sig]], dat[[range]]))}

fun(dat = dat1, sig = "x", range =  "y")
fun(dat = dat2, sig = "x", range =  "y")