首页 > 解决方案 > 按列中的计数拆分行

问题描述

我得到的行布局如下:

在此处输入图像描述

我希望将这些数据转换为:

在此处输入图像描述

我自己还没有在 R 中尝试过任何东西,因为我能想到的只是循环遍历框架,我的猜测是 R 中有更有效的方法。你们中的任何人都知道如何有效地实现这一点吗?

对于那些需要工作样本的人来说,@Ronack 的生成方法是:

df = structure(list(Date = c("23-10-2019", "24-10-2019"),
                    `30s` = c(3, 2),
                    `40s` = c(2, 1)),
               class = "data.frame", row.names = c(NA, -2L))

标签: r

解决方案


使用pivot_longer+uncount来自tidyr

library(tidyr)

df %>%
  pivot_longer(cols = -Date, names_to = 'measure') %>%
  uncount(value)

#  Date      measure
#  <chr>      <chr>  
#1 23-10-2019 30s    
#2 23-10-2019 30s    
#3 23-10-2019 30s    
#4 23-10-2019 40s    
#5 23-10-2019 40s    
#6 24-10-2019 30s    
#7 24-10-2019 30s    
#8 24-10-2019 40s    

数据

df <- structure(list(Date = c("23-10-2019", "24-10-2019"), `30s` = c(3, 
2), `40s` = c(2, 1)), class = "data.frame", row.names = c(NA, -2L))

推荐阅读