我在R控制台中加载了不同类型的对象.我可以全部删除它们
rm(list=ls())
Run Code Online (Sandbox Code Playgroud)
或使用仅删除函数(但不删除变量)
rm(list=lsf.str())
Run Code Online (Sandbox Code Playgroud)
我的问题是:有没有办法删除除函数之外的所有变量
Jos*_*ien 131
这是一个删除函数以外的所有对象的单行程序:
rm(list = setdiff(ls(), lsf.str()))
Run Code Online (Sandbox Code Playgroud)
它用于setdiff查找ls()没有模式的全局环境中的对象子集(由返回者)function(返回者lsf.str())
贴出的setdiff答案很好.我只是觉得我发布了一段时间后我写的相关功能.它的用处取决于读者:-).
lstype<-function(type='closure'){
inlist<-ls(.GlobalEnv)
if (type=='function') type <-'closure'
typelist<-sapply(sapply(inlist,get),typeof)
return(names(typelist[typelist==type]))
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
113184 次 |
| 最近记录: |