2012-04-26 47 views
1

我有幾個數據幀,如合併數據幀,包括重複的行

>data1 
    pearson  fisher  yates mec 
1 0.01141204 0.02857143 0.05777957 2.50 
2 0.02609829 0.04761905 0.11203684 2.25 
3 0.05280751 0.07619048 0.19670560 2.00 
4 0.09742169 0.16666667 0.31998422 1.75 
5 0.16754628 0.42857143 0.49015296 1.50 
6 0.27332168 0.44444444 0.71500065 1.25 
7 0.42919530 1.00000000 1.00000000 1.00 
8 0.65790502 1.00000000 0.65790502 0.75 
9 1.00000000 1.00000000 0.29184055 0.50 

> data2 
    pearson  fisher  yates mec 
1 0.02609829 0.04761905 0.1120368 2.25 
2 0.05777957 0.20634921 0.2059032 2.50 
3 0.11203684 0.24242424 0.3403557 2.25 
4 0.19670560 0.52380952 0.5186050 2.00 
5 0.31998422 0.52380952 0.7402693 1.75 
6 0.49015296 1.00000000 1.0000000 1.50 
7 0.71500065 1.00000000 0.7150007 1.25 
8 1.00000000 1.00000000 0.4291953 1.00 
9 0.65790502 1.00000000 0.6579050 0.75 

當我試圖合併這兩個數據幀,這裏是我得到:

> merge(data1, data2, all=TRUE) 
     pearson  fisher  yates mec 
1 0.01141204 0.02857143 0.05777957 2.50 
2 0.02609829 0.04761905 0.11203684 2.25 
3 0.05280751 0.07619048 0.19670560 2.00 
4 0.05777957 0.20634921 0.20590321 2.50 
5 0.09742169 0.16666667 0.31998422 1.75 
6 0.11203684 0.24242424 0.34035574 2.25 
7 0.16754628 0.42857143 0.49015296 1.50 
8 0.19670560 0.52380952 0.51860502 2.00 
9 0.27332168 0.44444444 0.71500065 1.25 
10 0.31998422 0.52380952 0.74026928 1.75 
11 0.42919530 1.00000000 1.00000000 1.00 
12 0.49015296 1.00000000 1.00000000 1.50 
13 0.65790502 1.00000000 0.65790502 0.75 
14 0.71500065 1.00000000 0.71500065 1.25 
15 1.00000000 1.00000000 0.29184055 0.50 
16 1.00000000 1.00000000 0.42919530 1.00 

我需要得到18行,但我得到了16,我有重複的行,我想保留在數據集中。我怎樣才能做到這一點?

+0

對不起,我誤解你的問題的第一次。我編輯了我的回覆,以便獲得18行。 – 2012-04-29 02:22:40

回答

2

編輯忽略這個答案。 merge給出了所需的輸出。

rbind()將把兩個數據幀一起保存來自於新的數據幀中的所有行。此外,如果您使用r重新提出您的問題,您可能會收到更多回復和及時回覆。

首先,讓你的兩個數據集到r

data1 = read.table(text = " 
pearson fisher  yates  mec 
0.01141204 0.02857143 0.05777957 2.50 
0.02609829 0.04761905 0.11203684 2.25 
0.05280751 0.07619048 0.19670560 2.00 
0.09742169 0.16666667 0.31998422 1.75 
0.16754628 0.42857143 0.49015296 1.50 
0.27332168 0.44444444 0.71500065 1.25 
0.42919530 1.00000000 1.00000000 1.00 
0.65790502 1.00000000 0.65790502 0.75 
1.00000000 1.00000000 0.29184055 0.50", sep = "", header = TRUE) 

data2 = read.table(text = " 
pearson  fisher  yates mec 
0.02609829 0.04761905 0.1120368 2.25 
0.05777957 0.20634921 0.2059032 2.50 
0.11203684 0.24242424 0.3403557 2.25 
0.19670560 0.52380952 0.5186050 2.00 
0.31998422 0.52380952 0.7402693 1.75 
0.49015296 1.00000000 1.0000000 1.50 
0.71500065 1.00000000 0.7150007 1.25 
1.00000000 1.00000000 0.4291953 1.00 
0.65790502 1.00000000 0.6579050 0.75", sep = "", header = TRUE) 

data.merge = rbind(data1, data2) 
+0

感謝它的工作。 – skorkmaz 2012-05-04 08:16:04

+1

這不是合併,這是綁定。 – Cybernetic 2014-05-14 19:17:48