具有多个列和值的数据透视更长

编程入门 行业动态 更新时间:2024-10-27 06:24:17
本文介绍了具有多个列和值的数据透视更长的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个格式的数据框

# A tibble: 6 x 8 type id age2000 age2001 age2002 bool2000 bool2001 bool2002 <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> 1 1 1 20 21 22 1 1 1 2 1 2 35 36 37 2 2 2 3 1 3 24 25 26 1 1 1 4 2 1 32 33 34 2 2 2 5 2 2 66 67 68 2 2 2 6 2 3 14 15 16 1 1 1

,并希望使用tidyr宇宙中的ivot_longer生成以下形式的纵向数据:

and would like to use pivot_longer from the tidyr universe to generate longitudinal data of the form:

# A tibble: 18 x 5 type id age bool year <chr> <chr> <chr> <chr> <chr> 1 1 1 20 1 2000 2 1 1 21 1 2001 3 1 1 22 1 2002 4 1 2 35 2 2000 5 1 2 36 2 2001 6 1 2 37 2 2002 7 1 3 24 1 2000 8 1 3 25 1 2001 9 1 3 26 1 2002 10 2 1 32 2 2000 11 2 1 33 2 2001 12 2 1 34 2 2002 13 2 2 66 2 2000 14 2 2 67 2 2001 15 2 2 68 2 2002 16 2 3 14 1 2000 17 2 3 15 1 2001 18 2 3 16 1 2002

这里有人知道我面临的这个问题的解决方案吗?

Does anybody here know a solution to this problem i am facing?

非常感谢您的任何建议!

Thank you very much for any advice!

推荐答案

您可以在此处使用names_pattern.

tidyr::pivot_longer(df, cols = -c(id, type), names_to = c('.value', 'year'), names_pattern = '([a-z]+)(\\d+)') # A tibble: 18 x 5 # type id year age bool # * <int> <int> <chr> <int> <int> # 1 1 1 2000 20 1 # 2 1 1 2001 21 1 # 3 1 1 2002 22 1 # 4 1 2 2000 35 2 # 5 1 2 2001 36 2 # 6 1 2 2002 37 2 # 7 1 3 2000 24 1 # 8 1 3 2001 25 1 # 9 1 3 2002 26 1 #10 2 1 2000 32 2 #11 2 1 2001 33 2 #12 2 1 2002 34 2 #13 2 2 2000 66 2 #14 2 2 2001 67 2 #15 2 2 2002 68 2 #16 2 3 2000 14 1 #17 2 3 2001 15 1 #18 2 3 2002 16 1

数据

df <- structure(list(type = c(1L, 1L, 1L, 2L, 2L, 2L), id = c(1L, 2L, 3L, 1L, 2L, 3L), age2000 = c(20L, 35L, 24L, 32L, 66L, 14L), age2001 = c(21L, 36L, 25L, 33L, 67L, 15L), age2002 = c(22L, 37L, 26L, 34L, 68L, 16L), bool2000 = c(1L, 2L, 1L, 2L, 2L, 1L), bool2001 = c(1L, 2L, 1L, 2L, 2L, 1L), bool2002 = c(1L, 2L, 1L, 2L, 2L, 1L)), class = "data.frame", row.names = c(NA, -6L))

更多推荐

具有多个列和值的数据透视更长

本文发布于:2023-10-18 12:05:03,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1504183.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:多个   更长   透视   数据

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!