13

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

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

4

1 回答 1

15

您需要在未评估的上下文中访问变量名称。我们可以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是为数据集和绘图创建信息标签。

于 2013-05-24T20:16:42.407 回答