我想写一个函数,是在rm函数基础上的:能够将需要的对象保留下来,其他对象删除

但是下面的程序始终有些问题~ 其实如果不把它当函数,还是可以用的~~

请高手指点一下哪里错误~~~

<br />
a=1<br />
b=2<br />
c=3<br />
d=4<br />
e=5<br />
f=6<br />
g=7<br />
h=8<br />
j=9<br />
i=7</p>
<p>S<-c('a','b','c')</p>
<p>ls()->O<br />
remain<-function(Stay,Object){</p>
<p>  as.data.frame(Stay)->St<br />
  apply(St,1,function(x){<br />
    which(x==Object)<br />
  }<br />
        )->Sel<br />
  rm(list=character(Object[-c(Sel)]))</p>
<p>}<br />
remain(S,O)<br />
rm(list=ls())<br />
</p>

<br />
a = 1<br />
b = 2<br />
c = 3<br />
d = 4<br />
e = 5<br />
f = 6<br />
g = 7<br />
h = 8<br />
j = 9<br />
i = 7</p>
<p>O = ls()<br />
S = c('a', 'b', 'c')</p>
<p>remain <- function(Stay, Object) rm(list = setdiff(Object, Stay), pos = 1)</p>
<p>remain(S, O)<br />
</p>

回复 第2楼 的 nan.xiao:非常感谢! 但是能请教一下我贴出来的那个程序错在哪里?