按列名(而不是按列值)合并(合并)行
merge (combine) rows by column names (not by column values)
我有几个 R 数据框。有些列具有相同的列名,但也有一些列在每个数据框中具有不同的名称。我想合并这些数据框的行,以便将具有相同名称的列添加到新行中,并且可以将具有不同列名的列保留在新数据框中。一个可复制的例子看起来像这样:
apple <- data.frame(Obs = c(1:4),
Color = c("red", "red", "red", "green"),
Weight = c(1.1, 1.2, 1.3, 1.4))
orange <- data.frame(Obs = c(2:11),
speed = c(2, 3, 4, 5, 6, 7, 8, 9, 2, 3))
apple
Obs Color Weight
1 1 red 1.1
2 2 red 1.2
3 3 red 1.3
4 4 green 1.4
orange
Obs speed
1 2 2
2 3 3
3 4 4
4 5 5
5 6 6
6 7 7
7 8 8
8 9 9
9 10 2
10 11 3
所需的输出如下所示:
Obs Color Weight speed
1 1 red 1.1
2 2 red 1.2
3 3 red 1.3
4 4 green 1.4
5 2 2
6 3 3
7 4 4
8 5 5
9 6 6
10 7 7
11 8 8
12 9 9
13 10 2
14 11 3
非常感谢。
包 plyr
有一个有用的功能:
library(plyr)
rbind.fill(apple, orange)
提供以下内容table:
Obs Color Weight speed
1 1 red 1.1 NA
2 2 red 1.2 NA
3 3 red 1.3 NA
4 4 green 1.4 NA
5 2 <NA> NA 2
6 3 <NA> NA 3
7 4 <NA> NA 4
8 5 <NA> NA 5
9 6 <NA> NA 6
10 7 <NA> NA 7
11 8 <NA> NA 8
12 9 <NA> NA 9
13 10 <NA> NA 2
14 11 <NA> NA 3
library(tidyverse)
bind_rows(apple, orange)
给出:
Obs Color Weight speed
1 1 red 1.1 NA
2 2 red 1.2 NA
3 3 red 1.3 NA
4 4 green 1.4 NA
5 2 <NA> NA 2
6 3 <NA> NA 3
7 4 <NA> NA 4
8 5 <NA> NA 5
9 6 <NA> NA 6
10 7 <NA> NA 7
11 8 <NA> NA 8
12 9 <NA> NA 9
13 10 <NA> NA 2
14 11 <NA> NA 3
我有几个 R 数据框。有些列具有相同的列名,但也有一些列在每个数据框中具有不同的名称。我想合并这些数据框的行,以便将具有相同名称的列添加到新行中,并且可以将具有不同列名的列保留在新数据框中。一个可复制的例子看起来像这样:
apple <- data.frame(Obs = c(1:4),
Color = c("red", "red", "red", "green"),
Weight = c(1.1, 1.2, 1.3, 1.4))
orange <- data.frame(Obs = c(2:11),
speed = c(2, 3, 4, 5, 6, 7, 8, 9, 2, 3))
apple
Obs Color Weight
1 1 red 1.1
2 2 red 1.2
3 3 red 1.3
4 4 green 1.4
orange
Obs speed
1 2 2
2 3 3
3 4 4
4 5 5
5 6 6
6 7 7
7 8 8
8 9 9
9 10 2
10 11 3
所需的输出如下所示:
Obs Color Weight speed
1 1 red 1.1
2 2 red 1.2
3 3 red 1.3
4 4 green 1.4
5 2 2
6 3 3
7 4 4
8 5 5
9 6 6
10 7 7
11 8 8
12 9 9
13 10 2
14 11 3
非常感谢。
包 plyr
有一个有用的功能:
library(plyr)
rbind.fill(apple, orange)
提供以下内容table:
Obs Color Weight speed
1 1 red 1.1 NA
2 2 red 1.2 NA
3 3 red 1.3 NA
4 4 green 1.4 NA
5 2 <NA> NA 2
6 3 <NA> NA 3
7 4 <NA> NA 4
8 5 <NA> NA 5
9 6 <NA> NA 6
10 7 <NA> NA 7
11 8 <NA> NA 8
12 9 <NA> NA 9
13 10 <NA> NA 2
14 11 <NA> NA 3
library(tidyverse)
bind_rows(apple, orange)
给出:
Obs Color Weight speed
1 1 red 1.1 NA
2 2 red 1.2 NA
3 3 red 1.3 NA
4 4 green 1.4 NA
5 2 <NA> NA 2
6 3 <NA> NA 3
7 4 <NA> NA 4
8 5 <NA> NA 5
9 6 <NA> NA 6
10 7 <NA> NA 7
11 8 <NA> NA 8
12 9 <NA> NA 9
13 10 <NA> NA 2
14 11 <NA> NA 3