在R中,我希望能够删除( rm )一个变量,该变量的名称以字符串形式存储在另一个变量中。这是一个例子...
myVarName <- "toBeRemoved"
assign(myVarName, 3)
# mysteryremove is the function/command I'm looking for
mysteryremove(myVarName)
如您所见,我已经使用 assign 命令将值3放入名为“ toBeRemoved”的变量中。我正在寻找一个类似于 assign 的函数,该函数将通过变量名删除 / rm 该变量。
请注意,我想我可以这样做:
idx <- which(myVarName == ls())
if(length(idx)) rm(list = ls()[idx])
...但是我希望有一种更简单的方法。
最后的注释-当然,如果我知道要删除的变量,我可以简单地做到:
rm(toBeRemoved)
...但是问题在于,在执行代码之前,我不知道要删除的变量。
答案 0 :(得分:1)
只需使用
rm(list=myVarName)
list=
参数采用字符名称。虽然总的来说,我会告诫不要使用assign()
。它通常是不必要的,只是非常混乱。在大多数情况下,R对命名列表的满意度更高。