ls(pattern="")
函数对我来说非常有用,因为我的对象列表似乎在不断增长和发展。我很好奇这个功能是否更有用。
例如,假设我有4个对象,
a.c<-1
b.c<-2
c.c<-3
d.c<-4
现在我使用有用的ls(pattern="")
函数
ls(pattern=".c")
现在我尝试制作一个清单
list(ls(patter=".c"))
但它并没有给我任何有用的东西("a.c" "b.c" "c.c" "d.c"
)。我想要这两个输出中的任何一个
1,2,3,4
OR
a.c, b.c, c.c, d.c
答案 0 :(得分:6)
有几个问题:
1).
中的".c"
被忽略,你需要&#34;逃避&#34;它:
ls(pattern="\\.c")
否则,无论是否有句号,它都会返回c
的所有对象。
2)ls
将对象的名称作为字符返回。要根据名称获取对象的值,您需要函数get
:
lapply(ls(pattern="\\.c"), get)
3)正如评论中提到的joran,在列表中保持彼此关联的对象要好得多:
List.c = list(a.c=1, b.c=2, c.c=3, d.c=4)