我有一个看起来像这样的函数:
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
?
答案 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
的典型用法是为数据集和图表创建信息标签。