微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

难倒如何将这个数据框从长到宽重塑

如何解决难倒如何将这个数据框从长到宽重塑

我需要从长到宽重塑数据框。我想重塑几个变量,但也要保持数据框其余部分的格式。我有一个数据框,其中包含数年的种族、五分之一和收入。

df <- structure(list(year = c(2019,2019,2018,2018),race = c("Black Alone","Black Alone","Black Alone"),quintile = c("Lowest","Middle","Highest","Lowest","Highest"),income = c(8680,45356,177659,7657,42202,155520)),row.names = c(NA,-6L),class = c("tbl_df","tbl","data.frame"))

数据框 df 如下所示:

year  race         quintile  income
2019  Black Alone  Lowest    8680
2019  Black Alone  Middle    45356
2019  Black Alone  Highest   177659
2018  Black Alone  Lowest    7657
2018  Black Alone  Middle    42202
2018  Black Alone  Highest   155520

我希望数据框看起来像:

year  race         Lowest_income  Middle_income  Highest_income
2019  Black Alone  8680           45356          177659
2018  Black Alone  7657           42202          155520

我不知道从哪里开始实现这一目标。任何帮助将不胜感激!

解决方法

我们可以使用

library(dplyr)
library(tidyr)
library(stringr)
df %>% 
   mutate(quintile = str_c(quintile,'_income')) %>%
   pivot_wider(names_from = 'quintile',values_from = income)

-输出

# A tibble: 2 x 5
#   year race        Lowest_income Middle_income Highest_income
#  <dbl> <chr>               <dbl>         <dbl>          <dbl>
#1  2019 Black Alone          8680         45356         177659
#2  2018 Black Alone          7657         42202         155520

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。