aaa<-function() {
for (i in 1:2) {
rm(paste("aaa",i,sep=""),pos = ".GlobalEnv")
}
}
aaa1<-"e!f!g!h!"
aaa2<-"e!f!g!h!"
aaa()
我试图用循环删除aaa1和aaa2,但它似乎不起作用。
答案 0 :(得分:2)
您无法将返回类似字符向量的函数传递给rm
。例如,如果你运行
aaa1<-12
x<-"aaa1"
rm(x)
它将删除x
,而不是aaa1
。所以你不能通过给rm()
这样的字符串列表来删除变量。
但是,rm()
确实有list=
参数,允许您指定字符向量。所以
aaa<-function() {
for (i in 1:2) {
rm(list=paste("aaa",i,sep=""),pos = ".GlobalEnv")
}
}
aaa1<-"e!f!g!h!"
aaa2<-"e!f!g!h!"
aaa()
会奏效。