2013-06-23 144 views
-1

我有排列成列格式的兩個不同的數據集如下:合併兩個數據集中的R

數據集1:

A B C D E 

13 1 1.7 2 1 
13 2 5.3 2 1 
13 2 2 2 1 
13 2 1.8 2 1 
1 6 27 9 1 
1 6 6.6 9 1 
1 7 17 9 1 
1 7 7.1 9 1 
1 7 8.5 9 1 

數據集2:

A B F G 
13 1 42 1002 
13 2 42 1002 
13 2 42 1002 
13 2 42 1002 
13 3 42 1002 
13 4 42 1002 
13 5 42 1002 
1 2 27 650 
1 3 27 650 
1 4 27 650 
1 6 27 650 
1 7 27 650 
1 7 27 650 
1 7 27 650 
1 8 27 650 

兩個數據集的行號是但它們包含兩個樣本的數據(例如,列A:兩個數據集中的13和1)。我希望將數據集1的C D和E值放置在數據集2中,這兩個數據集中的A和B值相同。所以,加入應該以A和B爲基礎。我需要爲約47560行執行此操作。

我R中新,所以應該感恩,如果我能爲

參考從R.

+0

如果你正在做的A和B合併並且在一個文件中有三個實例,A = 13; B = 2,另一個文件中有三個這些值,那麼您將得到九行。這是你的預期嗎? –

+0

我需要6行,其中3行填充,3將是NA。合併數據庫的行號應與數據集2相同 – user2510725

+0

無論如何,該規範對於我來說是無法理解的。你需要更全面的解釋,因爲這兩個「普通選擇」本來就是將它們並排排列(3行)或返回笛卡兒積。你有其他想法,但你沒有解釋它。編輯你的問題。 –

回答

4

保存合併後的新數據集使用R中的合併函數獲取代碼:http://www.statmethods.net/management/merging.html

編輯: 所以首先你需要閱讀數據集,CSV是一個很好的格式。

> dataset1 <- read.csv(file="dataset1.csv", head=TRUE, sep=",") 
> dataset2 <- read.csv(file="dataset2.csv", head=TRUE, sep=",") 

如果您現在只鍵入變量名稱並按回車鍵,您應該看到數據集的讀出。所以...

> dataset1 

應該讀出上面的數據。然後,我認爲應該會出現以下......我可能是錯的...

> dataset1_2 <- merge(dataset1, dataset2, by=c("A","B")) 

編輯2:

> write.table(dataset1_2, "c:/dataset1_2.txt", sep=" ") 

參考:http://www.statmethods.net/input/exportingdata.html

+0

我覺得這應該類似於你要找的東西... total < - merge(data frameA,data frameB,by = c(「A」,「B」)) – harmonickey

+0

謝謝。但是,如何在R中使用兩個數據集。請問使用這個示例數據集請求提供代碼 – user2510725

+0

對不起,這是糟糕的編輯...我會在一秒內修復它... – harmonickey