我正在尝试在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)
知道如何调整此代码以便它可以适当地返回表格吗?
答案 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")