当我使用 rbind.fill 或 bind_rows 时,列消失

发布于 2025-01-09 14:43:04 字数 173 浏览 0 评论 0原文

我刚刚开始使用 R。

我尝试使用 rbind.fill 或 bind_rows 函数合并两个数据帧。

这两个数据帧几乎共享所有列,预计有 8 列(其中一些在第一个数据帧中,一些在第二个数据帧中)。我找不到任何方法来确保新数据框包含所有列。 有人知道错误可能出在哪里吗?

预先感谢您的宝贵帮助

I just started using R.

I am trying to merge two dataframes using the rbind.fill or bind_rows function.

The two dataframes share almost all columns, expect 8 of them (some of them in the first dataframe, some in the second one). I cannot find any way to ensure that the new dataframe includes all columns.
Would anyone have an idea where the mistake might lie?

Thanks in advance for your precious help

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

无名指的心愿 2025-01-16 14:43:04

bind_rows 将返回两个数据帧中的所有列。对于其他数据集中未出现的列,该列将填充 NA

library(dplyr)

one <- starwars[1:4, c(1,3,5,6,7)]
two <- starwars[9:12, c(1,2,4,6)]

bind_rows(one, two)

  name               mass skin_color  eye_color birth_year height hair_color   
  <chr>             <dbl> <chr>       <chr>          <dbl>  <int> <chr>        
1 Luke Skywalker       77 fair        blue            19       NA NA           
2 C-3PO                75 gold        yellow         112       NA NA           
3 R2-D2                32 white, blue red             33       NA NA           
4 Darth Vader         136 white       yellow          41.9     NA NA           
5 Biggs Darklighter    NA NA          brown           NA      183 black        
6 Obi-Wan Kenobi       NA NA          blue-gray       NA      182 auburn, white
7 Anakin Skywalker     NA NA          blue            NA      188 blond        
8 Wilhuff Tarkin       NA NA          blue            NA      180 auburn, grey    

bind_rows will return all columns from both dataframes. For the columns that do not occur in the other dataset, the column will fill with NA.

library(dplyr)

one <- starwars[1:4, c(1,3,5,6,7)]
two <- starwars[9:12, c(1,2,4,6)]

bind_rows(one, two)

  name               mass skin_color  eye_color birth_year height hair_color   
  <chr>             <dbl> <chr>       <chr>          <dbl>  <int> <chr>        
1 Luke Skywalker       77 fair        blue            19       NA NA           
2 C-3PO                75 gold        yellow         112       NA NA           
3 R2-D2                32 white, blue red             33       NA NA           
4 Darth Vader         136 white       yellow          41.9     NA NA           
5 Biggs Darklighter    NA NA          brown           NA      183 black        
6 Obi-Wan Kenobi       NA NA          blue-gray       NA      182 auburn, white
7 Anakin Skywalker     NA NA          blue            NA      188 blond        
8 Wilhuff Tarkin       NA NA          blue            NA      180 auburn, grey    
就是爱搞怪 2025-01-16 14:43:04

由于您没有提供最小示例,我很难准确解决您的问题。但请参阅下面的代码,您可以重新组织数据。

使用名为 dplyr 的包中的 full_join。请参阅此处有关 full_join 的说明。

install.packages("dplyr")
library(dplyr)

new_df <- full_join(df1, df2)

df1 是第一个数据集的名称,df2 是第二个数据集的名称,new_df 是连接数据集的名称。

Since you didn't provide a minimal example, it is hard for me to solve exactly your problem. But see below a code that you can reorganize for your data.

Use full_join from the package called dplyr. See instructions for full_join here.

install.packages("dplyr")
library(dplyr)

new_df <- full_join(df1, df2)

df1 is the name first dataset, df2 is the name of the second dataset, and new_df is the name of the joined dataset.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文