R 将数据转换为长格式--在观测值之间插入其他变量

R 将数据转换为长格式--在观测值之间插入其他变量,r,data-cleaning,R,Data Cleaning,我在R中有以下数据帧: ID Count 31/10/2019 15 01 1 02 2 03 5 04 7 01/11/2019 14 01 1 02 4 03 5 04 5 02/11/2019

我在R中有以下数据帧:

ID            Count  
31/10/2019       15
01                1
02                2
03                5
04                7
01/11/2019       14
01                1
02                4
03                5
04                5
02/11/2019       10
01                1
02                2
03                3
04                4
我想把它改为:

ID            Count    Date
01                1    31/10/2019
02                2    31/10/2019
03                5    31/10/2019
04                7    31/10/2019
01                1    01/11/2019
02                4    01/11/2019
03                5    01/11/2019
04                5    01/11/2019
01                1    02/11/2019
02                2    02/11/2019
03                3    02/11/2019
04                4    02/11/2019

我想用gather,但不知道怎么用。有人能帮我吗?谢谢大家!

我们可以创建一个新列
Date
,其中值为
ID
如果
Color
列为空,否则
NA
填充
Date
列,并从
Color
列中删除空值

library(dplyr)

df %>%
  mutate(Date = ifelse(Color == "", ID, NA)) %>%
  tidyr::fill(Date) %>%
  filter(Color != "")

#   ID Color       Date
#1  01  blue 31/10/2019
#2  02  cyan 31/10/2019
#3  03   red 31/10/2019
#4  04 black 31/10/2019
#5  01  blue 01/11/2019
#6  02  cyan 01/11/2019
#7  03   red 01/11/2019
#8  04 black 01/11/2019
#9  01  blue 02/11/2019
#10 02  cyan 02/11/2019
#11 03   red 02/11/2019
#12 04 black 02/11/2019