R - 使对象为空

时间:2017-02-03 10:37:33

标签: r loops object get rm

我有一个大型数据集可以创建并以碎片形式完成。我创建了50个数据框(F1:F50)然后我将它们合并在一起:

for(i in 1:50) {x= get(paste0("F",i))
zF <- rbind.fill(zF,x)}

但是现在我试图清除其他对象。

一旦他们NULL,我就用

rm(list=names(which(sapply(globalenv(),is.null))))

也许我可以将is.null()更改为描述我的对象的模式,但我认为只是查看并制作每个NULL会更容易,所以我尝试了几次尝试:

> for(i in 1:56) {get(paste0("F",i))
     paste("F",i)=NULL}
Error in paste("F", i) = NULL : 
  target of assignment expands to non-language object

> for(i in 1:56){get(paste0("F",i))=NULL}
    Error in get(paste0("F", i)) = NULL : 
      target of assignment expands to non-language object

所以顶部循环工作但是这些失败意味着我虽然get会给你复制的数据(以x的形式),然后使用,但它不允许我改变实际的对象。

有没有办法做到这一点,或者是使用rm的解决方案,我更喜欢前者,因为它打开了对象的未来变化,而不仅仅是摆脱它们。

1 个答案:

答案 0 :(得分:1)

rm(list = ls(pattern = '^F'))

删除所有与模式匹配的对象(在这种情况下,所有以&#39; F&#39;开头的对象)