如何使用 Tidyverse 在不更改值的情况下将数据框连接到另一个数据框之上
How to join a data frame on top of another without changing values using Tidyverse
我正在处理多个 data.frames
,我必须在彼此之上加入,这正是我希望从 tidyverse
的函数 full_join
中得到的说明我有以下数据集
name<-c("AAA","AAA","AAA")
value<-c(1:3)
tag<-c(0,0,0)
part_a<-data.frame(name,value,tag)
name<-c("AAA","AAA","AAA")
value<-c(1:3)
key<-c(1,1,1)
part_b<-data.frame(name,value,key)
我想要的输出是这样的:
name
value
tag
key
AAA
1
0
NA
AAA
2
0
NA
AAA
3
0
NA
AAA
1
NA
1
AAA
2
NA
1
AAA
3
NA
1
但我得到的是:
> full_join(part_a,part_b)
Joining, by = c("name", "value")
name value tag key
1 AAA 1 0 1
2 AAA 2 0 1
3 AAA 3 0 1
这让我很困惑,因为我认为这个函数试图找到共同的价值,然后聚合其余的数据,但我真正想要的只是把所有 dataframes
放在一起包括它们没有共同点的列,我知道我不能使用 rbind
因为这个函数要求数据帧具有相同的列名,如果你们能帮助我,我将非常感激!
library(dplyr)
part_a |> bind_rows(part_b)
name value tag key
1 AAA 1 0 NA
2 AAA 2 0 NA
3 AAA 3 0 NA
4 AAA 1 NA 1
5 AAA 2 NA 1
6 AAA 3 NA 1
full_join()
正在合并您的数据框。由于您没有指定要用作标识符的列,因此它使用的是公共字段(即 name
和 value
)。要简单地组合数据帧,您可以使用 dplyr
的 bind_rows()
:
result <- bind_rows(part_a, part_b)
请注意,还有一个 bind_cols()
用于将来自多个数据帧的变量(即列)组合成一个数据帧。
我正在处理多个 data.frames
,我必须在彼此之上加入,这正是我希望从 tidyverse
的函数 full_join
中得到的说明我有以下数据集
name<-c("AAA","AAA","AAA")
value<-c(1:3)
tag<-c(0,0,0)
part_a<-data.frame(name,value,tag)
name<-c("AAA","AAA","AAA")
value<-c(1:3)
key<-c(1,1,1)
part_b<-data.frame(name,value,key)
我想要的输出是这样的:
name | value | tag | key |
---|---|---|---|
AAA | 1 | 0 | NA |
AAA | 2 | 0 | NA |
AAA | 3 | 0 | NA |
AAA | 1 | NA | 1 |
AAA | 2 | NA | 1 |
AAA | 3 | NA | 1 |
但我得到的是:
> full_join(part_a,part_b)
Joining, by = c("name", "value")
name value tag key
1 AAA 1 0 1
2 AAA 2 0 1
3 AAA 3 0 1
这让我很困惑,因为我认为这个函数试图找到共同的价值,然后聚合其余的数据,但我真正想要的只是把所有 dataframes
放在一起包括它们没有共同点的列,我知道我不能使用 rbind
因为这个函数要求数据帧具有相同的列名,如果你们能帮助我,我将非常感激!
library(dplyr)
part_a |> bind_rows(part_b)
name value tag key
1 AAA 1 0 NA
2 AAA 2 0 NA
3 AAA 3 0 NA
4 AAA 1 NA 1
5 AAA 2 NA 1
6 AAA 3 NA 1
full_join()
正在合并您的数据框。由于您没有指定要用作标识符的列,因此它使用的是公共字段(即 name
和 value
)。要简单地组合数据帧,您可以使用 dplyr
的 bind_rows()
:
result <- bind_rows(part_a, part_b)
请注意,还有一个 bind_cols()
用于将来自多个数据帧的变量(即列)组合成一个数据帧。