将长数据重塑为多个宽列

Reshape long data to multiple wide columns

我有长格式的数据,需要有选择地转换为宽格式。

这是我所拥有的和我需要的例子

Rating <- c("Overall","Overall_rank","Total","Total_rank")
value <- c(6,1,5,2)

example <- data.frame(Rating,value)

创建如下所示的数据:

Rating         value
Overall          6
Overall_rank     1
Total            5
Total_rank       2

但是,我希望我的数据看起来像:

我尝试了 pivot_wider,但似乎无法获取。

这是否适合您的实际情况?

我认为混淆源于将第 1 列称为“评级”,而实际上“评级”值(据我所知)包含在第 1 行和第 3 行中。

example %>%
  separate(Rating, sep = "_", into = c("Category", "type")) %>%
  mutate(type = replace(type, is.na(type), "rating")) %>%
  pivot_wider(names_from = type, values_from = value)

  Category rating  rank
  <chr>     <dbl> <dbl>
1 Overall       6     1
2 Total         5     2