【发布时间】:2013-05-24 20:14:27
【问题描述】:
我有一个看起来像这样的函数:
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?
【问题讨论】:
-
您知道
dataframe <- dataframe[rows.remove,]不 会在函数调用之外传播更改吗?另外,rows.remove应该是否定的。 -
帖子已编辑至
-rows.remove。抱歉,不明白您所说的“不在函数调用之外传播更改”是什么意思。这是我的错,不是你的。可以扩展一下吗? -
如果您现在调用
removeRows,R 将创建您的dataframe的副本并修改该副本。当函数终止时,(修改后的)副本被销毁,原始的dataframe将保持不变。如果要更改原始数据,必须将其调用为mtcars <- removeRows(mtcars, 5),并在函数代码末尾添加dataframe(或return(dataframe))行。