2013-03-08 69 views
-3

下面是什麼,我希望做的簡化版本(概念是相同的,數據是不同的)在R,提取數據從一個數據幀到另一個基於匹配行值

我有兩個數據不同長度的幀。

DF1有兩列(名稱和國家縮寫)和1,000行

DF2有兩列(州縮寫及國家名稱)和50行

在DF1我想添加一個名爲國家名稱列

我想R鍵看看DF1國家縮寫,然後找到在DF2相應的國家名稱(使用DF2國家縮寫列)

注意,在DF1新列可以被稱爲什麼

+1

看起來很像功課的問題... – 2013-03-08 15:00:52

+1

你嘗試過什麼?你卡在哪裏?由於這看起來像作業,並且是一個相當基本的R問題,所以很難相信你在嘗試在發佈之前自己找到答案。 – Justin 2013-03-08 15:02:53

+0

不是一個家庭作業問題,但它確實看起來像它。我只是R的新手,可以在Excel中輕鬆執行此操作;我只是試圖將我所有的數據分析工作從Excel遷移出去。 – user2148746 2013-03-08 15:26:31

回答

2

您可以使用?merge此:

> df1 <- data.frame(name=c('n1','n2','n3','n4'), state.abbr=c('s1','s2','s2','s1')) 
> df2 <- data.frame(state.abbr=c('s1','s2'), state.name=c('state 1', 'state 2')) 
> merge(df1, df2) 
    state.abbr name state.name 
1   s1 n1 state 1 
2   s1 n4 state 1 
3   s2 n2 state 2 
4   s2 n3 state 2 
+0

問題是,在我的參考數據框(DF2)中,我有很多其他列,我不想合併到DF1中。 – user2148746 2013-03-08 15:27:50

+1

@ user2148746:只提取你想要的列:'df2 [,c('state.abbr','state.name')]' – NPE 2013-03-08 15:33:26

+0

然而,NPE只是合併了來自參考數據幀的所有信息而沒有必要基於特定列 – user2148746 2013-03-08 15:41:45

相關問題