gpt4 book ai didi

r - cbind 2个具有不同行数的数据帧

转载 作者:行者123 更新时间:2023-12-04 00:51:45 26 4
gpt4 key购买 nike

我有两个名为 h 的列表和 g .
它们每个都包含 244 个数据帧,如下所示:

h[[1]]
year avg hr sal
1 2010 0.300 31 2000
2 2011 0.290 30 4000
3 2012 0.275 14 600
4 2013 0.280 24 800
5 2014 0.295 18 1000
6 2015 0.330 26 7000
7 2016 0.315 40 9000

g[[1]]
year pos fld
1 2010 A 0.990
2 2011 B 0.995
3 2013 C 0.970
4 2014 B 0.980
5 2015 D 0.990

我要 cbind这两个数据框。
但正如您所见,它们的行数不同。
我想组合这些数据框,以便将具有相同年份的行组合成一行。我希望用 NA 填充空白空间.
我期望的结果是这样的:
   year  avg    hr   sal   pos   fld
1 2010 0.300 31 2000 A 0.990
2 2011 0.290 30 4000 B 0.995
3 2012 0.275 14 600 NA NA
4 2013 0.280 24 800 C 0.970
5 2014 0.295 18 1000 B 0.980
6 2015 0.330 26 7000 D 0.990
7 2016 0.315 40 9000 NA NA

另外,我想对每个列表中的所有 244 个数据帧重复此操作, hg .
我想创建一个名为 final 的新列表其中包含 244 个组合数据帧。

我怎样才能做到这一点...?
所有答案将不胜感激:)

最佳答案

以下是使用 tidyverse 的方法工具:

library(tidyverse)

h <- list()
g <- list()

h[[1]] <- tribble(
~year, ~avg, ~hr, ~sal,
2010, 0.300, 31, 2000,
2011, 0.290, 30, 4000,
2012, 0.275, 14, 600,
2013, 0.280, 24, 800,
2014, 0.295, 18, 1000,
2015, 0.330, 26, 7000,
2016, 0.315, 40, 9000
)

g[[1]] <- tribble(
~year, ~pos, ~fld,
2010, "A", 0.990,
2011, "B", 0.995,
2013, "C", 0.970,
2014, "B", 0.980,
2015, "D", 0.990
)

map2(h, g, left_join)

产生:
[[1]]
# A tibble: 7 x 6
year avg hr sal pos fld
<dbl> <dbl> <dbl> <dbl> <chr> <dbl>
1 2010 0.3 31 2000 A 0.99
2 2011 0.290 30 4000 B 0.995
3 2012 0.275 14 600 NA NA
4 2013 0.28 24 800 C 0.97
5 2014 0.295 18 1000 B 0.98
6 2015 0.33 26 7000 D 0.99
7 2016 0.315 40 9000 NA NA

关于r - cbind 2个具有不同行数的数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40399229/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com