我将一些对象加载到R工作区(rstudio)并尝试分配给变量(如下所示:x< - list(“正则表达式模式forobjectName”)),以便内容可用于使用合并函数进行进一步分析R简单地分配了由引号括起来的正确对象名称,当我将x传递给它时,merge()抛出了错误。是否有人知道哪些函数可能对读取对象有用,然后可以将其分配给变量进行进一步分析?
由于
答案 0 :(得分:2)
get()
函数按名称检索对象。因此,如果x
为1,您可以使用get("x")
获得1:
> # Typing this on the R command line...
> x <- 1
> get("x")
[1] 1
您可以在变量名列表中使用get()
作为lapply()
的一部分,以检索与您要查找的模式匹配的所有对象。这是我间接检索两个数据帧merge()
的例子。
x <- lapply(ls(pat="^df"), get)
是与您相关的核心陈述。
> # First we define the data frames
> df1 <- data.frame(a=1:5, b=1:5)
> df2 <- data.frame(a=3:7, b=3:7)
> ls(pat="^df")
[1] "df1" "df2"
> # This just gets their names
> x <- ls(pat="^df")
> x
[1] "df1" "df2"
> # This retrieves the actual objects
> x <- lapply(ls(pat="^df"), get)
> x
[[1]]
a b
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
[[2]]
a b
1 3 3
2 4 4
3 5 5
4 6 6
5 7 7
> merge(x[[1]], x[[2]])
a b
1 3 3
2 4 4
3 5 5