将长数据 reshape 为多个宽列

标签 r dataframe pivot tidyr

我有长格式的数据,我需要有选择地移动到宽格式。

这是我拥有的和我需要的示例

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

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

What my data should look like

我尝试了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

关于将长数据 reshape 为多个宽列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70841988/

相关文章:

python pandas 将数据框更改为旋转列

RMarkdown : Multiple ggplots in same chunk using loop

r - 为什么 plotly-rendered 图表在 Mozilla 上不起作用

python - 特定格式的数据框枢轴

python - 使用自定义变量作为 .rolling() 窗口

python - 如何在Python中对两列进行透视和排序?

vba - 如何将数据透视表列中的所有值除以常数

r - 无法删除文件 - 打开我的 Rstudio

r - 仅当满足多个条件时才将不同列中的值匹配到行

python - 两个元组作为Python列表中的一个元素