创建可灵活引用不同数据集的 R 函数
Create R Function with flexibility to reference different datasets
我正在尝试在 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)
知道如何调整此代码以使其能够 return table 吗?
数据框上的 [[ ]]
运算符类似于 $
但允许您引入一个对象并查找它的值。然后在函数之外将“x
”值分配给 sig
。如果你不加引号,R 会寻找 x
object
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")
我正在尝试在 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)
知道如何调整此代码以使其能够 return table 吗?
数据框上的 [[ ]]
运算符类似于 $
但允许您引入一个对象并查找它的值。然后在函数之外将“x
”值分配给 sig
。如果你不加引号,R 会寻找 x
object
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")