2014-10-06 75 views
-1

我正在尝试将paste0与合并一起使用,以便我可以将一堆东西合并到一个循环中。然而,我在与调用从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

有此问题的很多重复:'得到(DF)[[ 'X'] ]' – 2014-10-06 23:07:53

+1

这似乎也有更好的方法来做你想做的事情,而不使用'get'。特别是你的问题的标题与最终陈述不一致。如果你给我们一个恰当的例子,说明“试图将paste0与merge合并,这样我就可以将一堆东西合并到一个循环中” – Alex 2014-10-06 23:19:20

回答

1

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

你需要强迫df到使用as.environment的环境中,然后调用get使用此环境,如:

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

谢谢,正是我一直在寻找的东西 – Legacy 2014-10-07 23:47:45