根据另一个列表 R 中的数据框列创建数据框列表

迭戈·布里苏埃拉

我有一个如下所示的数据框列表:

df_type1 <- data.frame(unit_name=c("A", "B", "C", "D"),
                   year_2014=c(653, 49, 563, 239),
                   year_2015=c(29, 63, 4879, 34),
                   year_2016=c(349, 340, 1, 47))

df_type2 <- data.frame(unit_name=c("A", "B", "C", "D"),
                   year_2014=c(573, 59, 563, 2999),
                   year_2015=c(39, 6390, 479, 98),
                   year_2016=c(5649, 640, 890, 12))

list_types <- list(df_type1, df_type2)

这里,单位A到D的值对应于一年。

从这个列表中,我想获得一个新列表,其中每个数据框对应于相同单位 A 到 D 的每个单独年份的值。这些新数据框应如下所示:

df_2014 <- data.frame(unit_name=c("A", "B", "C", "D"),
                      type1=c(653, 49, 563, 239),  # these are the values of the column year_2014 in df_type1
                      type2=c(573, 59, 563, 2999))

df_2015 <- data.frame(unit_name=c("A", "B", "C", "D"),
                      type1=c(29, 63, 4879, 34),
                      type2=c(39, 6390, 479, 98))

df_2016 <- data.frame(unit_name=c("A", "B", "C", "D"),
                      type1=c(349, 340, 1, 47),
                      type2=c(5649, 640, 890, 12))

谢谢!

星期日

这应该给出:

list_types |> 
      purrr::map_dfr(~.x, .id = "TYPE") |> 
      tidyr::pivot_longer(!c(TYPE, unit_name )) |> 
      tidyr::pivot_wider(names_from  = TYPE, names_prefix = "type") |>  
      split(~name)

$year_2014
# A tibble: 4 × 4
  unit_name name      type1 type2
  <chr>     <chr>     <dbl> <dbl>
1 A         year_2014   653   573
2 B         year_2014    49    59
3 C         year_2014   563   563
4 D         year_2014   239  2999

$year_2015
# A tibble: 4 × 4
  unit_name name      type1 type2
  <chr>     <chr>     <dbl> <dbl>
1 A         year_2015    29    39
2 B         year_2015    63  6390
3 C         year_2015  4879   479
4 D         year_2015    34    98

$year_2016
# A tibble: 4 × 4
  unit_name name      type1 type2
  <chr>     <chr>     <dbl> <dbl>
1 A         year_2016   349  5649
2 B         year_2016   340   640
3 C         year_2016     1   890
4 D         year_2016    47    12

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从另一个包含R中元素列表的数据框中的a.character列创建一个数据框

根据 R 中的列名创建一个包含来自另一个数据框中的列的新数据框

使用数据框列表的公共列创建数据框-R

R循环遍历数据框列中的唯一值以根据条件创建另一个

如何根据R中另一个数据框中的列删除列数据框中的行?

根据 r 中另一个数据框中的出现次数创建新列

根据另一个因子列对R数据框中的因子列进行排序

根据条件用另一个数据框替换数据框列 - R

如何根据另一个向量的值删除R中数据框中的列?

根据另一个数据框中的列值从 R 中的数据框中删除行

如何从另一个数据框中的文本列表中的r列中返回特定单词

如何根据变量是否出现在另一个数据框中在R中创建另一个列

在 R 中的数据框列表中创建数据框名称列

根据熊猫数据框中的另一个列表创建一个列表

R中的列表创建数据框

使用R中另一个数据框的值在数据框中创建列

R:创建新的数据框行是来自另一个数据框的列

使用 R 中数据框列表中的数据框名称追加一个新列

从R中的另一个数据框创建多个数据框

R数据存储在一个数据框列的两个列表中,想要创建单个列

从列表中的数据框创建数据框,并在R的一列中创建最大值

转换数据框 R 列中的列表

根据 R 中一列的值将一个数据框中的值插入到另一个数据框中

根据R中另一个数据框中的元数据信息合并Dataframe列

根据包含R中数据框的元素列表的名称创建一列

根据另一个列条件用数据框中的另一个列表替换列表

R:使用另一个数据框创建一个新列

如何将列表项添加到R中另一个列表内的新数据框列中?

在 R 中创建一个包含另一个数据框统计信息的新数据框