对已处理代码执行R rm()函数
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("[
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谢谢您澄清发生了什么。谢谢。似乎这是在对象名称事先未知的设置中删除对象的唯一方法。