对已处理代码执行R rm()函数

对已处理代码执行R rm()函数,r,R,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("[

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 

obj使用给定字符串删除值的更好方法是通过
list=
参数

rm(list=sub("[.]test","",o.str))

“…”的记录方式是,它希望对象是带引号或不带引号的名称。它不需要返回名称的函数。这就是
list=
的作用。

很好的发现。这是由于
匹配。调用
行为造成的。请尝试
testfunc谢谢您澄清发生了什么。谢谢。似乎这是在对象名称事先未知的设置中删除对象的唯一方法。