在函数输出中打印数据帧名称

时间:2013-05-24 20:14:27

标签: r function

我有一个看起来像这样的函数:

removeRows <- function(dataframe, rows.remove){
  dataframe <- dataframe[-rows.remove,]
  print(paste("The", paste0(rows.remove, "th"), "row was removed from", "xxxxxxx"))
}

我可以使用这样的函数从数据框中删除第5行:

removeRows(mtcars, 5)

该函数输出此消息:

"The 5th row was removed from xxxxxxx"

如何将xxxxxxx替换为我使用的数据帧的名称,所以在这种情况下mtcars

1 个答案:

答案 0 :(得分:9)

您需要在未评估的上下文中访问变量名称。我们可以使用substitute

removeRows <- function(dataframe, rows.remove) {
  df.name <- deparse(substitute(dataframe))
  dataframe <- dataframe[rows.remove,]
  print(paste("The", paste0(rows.remove, "th"), "row was removed from", df.name))
}

事实上,这是它的主要用途;根据文件,

  

substitute的典型用法是为数据集和图表创建信息标签。