什么是rm()?我可以使用字符串删除对象,但似乎导致字符串的处理不起作用:
obj <- "my.obj"
o.str <- "obj.test"
class(sub("[.]test","",o.str)) # "character"
class("obj") # "character"
identical(sub("[.]test","",o.str),"obj") # "TRUE"
rm("obj") # works
obj <- "my.obj"
rm(sub("[.]test","",o.str))
# error:
# Error in rm(sub("[.]test", "", o.str)) :
# ... must contain names or character strings
为什么?
答案 0 :(得分:3)
使用给定字符串删除值的更好方法是通过list=
参数
rm(list=sub("[.]test","",o.str))
记录“...”的方式是它希望将对象作为引用或不引用的名称。它不期望一个会返回名字的函数。这就是list=
的用途。