数据名,作为在R中的函数中传递的参数

数据名,作为在R中的函数中传递的参数,r,function,R,Function,我构建了一个R包,包括一个名为mouse的数据集,在这里我可以使用data(mouse)访问它。在包中,我还有一个名为fun的函数,它的第一个参数是数据集的名称(包含在包中): 但是,当我将函数用作fun(dt=“mouse”)时,它会在data(dt)中显示:未找到数据集“dt”。另外,我不能使用dt[,1:6],因为这里有一个字符串。我尝试使用noquote和as.name函数去除引号,但对象dt不引用鼠标数据集 我的问题是,在函数参数中传递数据集(本例中为鼠标)的名称,然后在函数体中使用它

我构建了一个R包,包括一个名为
mouse
的数据集,在这里我可以使用
data(mouse)
访问它。在包中,我还有一个名为
fun
的函数,它的第一个参数是数据集的名称(包含在包中):

但是,当我将函数用作
fun(dt=“mouse”)
时,它会在data(dt)中显示
:未找到数据集“dt”
。另外,我不能使用
dt[,1:6]
,因为这里有一个字符串。我尝试使用
noquote
as.name
函数去除引号,但对象
dt
不引用鼠标数据集

我的问题是,在函数参数中传递数据集(本例中为鼠标)的名称,然后在函数体中使用它的最佳方法是什么?谢谢

试试这个:

f <- function(dt = NULL) {
  do.call("data", list(dt))
  dt <- eval(as.name(dt))
  head(dt)
}

f您不能硬编码
数据(鼠标)
部分吗?在这方面,是否还有其他数据集需要使
变得有趣
更灵活?一些关于为什么这样做的评论会很有帮助。
f <- function(dt = NULL) {
  do.call("data", list(dt))
  dt <- eval(as.name(dt))
  head(dt)
}