首页 > 解决方案 > 转置数据框

问题描述

我有一个这样的数据框:

df = data.frame (Gender = c ("F", "M", "M", "F"),
  cat_age = c ("] 10-15]", "] 10, 15]", "] 20 -25] ","] 55-60] "), 
  frequency = c (2, 6, 8, 7))

我想把它改成这样:

F; M; cat_age
2; 6; ] 10, 15]
0; 8; ] 20, 25]
7; 0; ] 55, 60]

标签: rdataframe

解决方案


您的 data.frame 有一些奇怪的地方,如果"] 10-15]"并且"] 10, 15]"应该是同一类别,您需要在 data.frame 中进行设置。例如:

df = data.frame (Gender = c ("F", "M", "M", "F"), 
cat_age = c ("] 10-15]", "] 10-15]", "] 20 -25] ","] 55-60] "), frequency = c (2, 6, 8, 7))

然后你可以使用pivot_wider()from tidyr

library(tidyr)

pivot_wider(df,values_from=frequency,names_from=Gender,values_fill=0)
# A tibble: 3 x 3
  cat_age          F     M
  <fct>        <dbl> <dbl>
1 "] 10-15]"       2     6
2 "] 20 -25] "     0     8
3 "] 55-60] "      7     0

推荐阅读