粘贴为对象名称

时间:2014-10-06 23:05:20

标签: r

我正在尝试将paste0与merge一起使用,这样我就可以在循环中合并一堆东西。但是,我在从data.frames调用特定列时遇到问题

为了说明,我将使用头

示例:

df <- data.frame(x=1:10,y=1:10)
head(df)
    x  y
1   1  1
2   2  2
3   3  3
4   4  4
5   5  5
6   6  6

head(get("df"))
    x  y
1   1  1
2   2  2
3   3  3
4   4  4
5   5  5
6   6  6    

head(df$x)
[1] 1 2 3 4 5 6

head(get("df$x"))
Error in get("df$x") : object 'df$x' not found

有没有办法获得特定的专栏?

1 个答案:

答案 0 :(得分:1)

函数get查找环境中定义的对象。如果未指定环境,则默认为全局工作区。

您需要使用df强制as.environment进入环境,然后使用此环境调用get,例如:

get("x", as.enviroment(get("df")))