如何用数据添加时间?

How to add time with data?

我有以下格式的数据

通过使用

重塑它
data2 <- melt(data, id.vars=c('NAME_3'), variable.name = "T", value.name = "response")

我首先创建了要添加到 table 中的日期序列。

date = seq(from = as.Date("2012-10-01"), to = as.Date("2012-10-04"), by = 'day')

然后将其与整形后的数据合并

merge(data2, date)

但要求的结果是

提前致谢。

我们需要按操作分组,即按 'NAME_3' 分组后,使用 from 选项创建 'date' 的 sequence 并指定 length.out 作为 n()

library(dplyr)
data2 <-  data2 %>%
      group_by(NAME_3) %>%
      mutate(date = seq(from = as.Date("2012-10-01"), 
                length.out = n(), by = 'day'))

注意:当复制数量不相等时,这也应该可以正常工作


或者如果'Name_3'元素的行数是固定的,那么我们可以使用rep

data2$date <- rep(date, each = nrow(data))

这将 return 与原始 melt 数据集

相同 order 的数据

我们可以使用回收技术在data2中添加日期列。

Name_3 排序数据并将 date 指定为新列。

data2 <- data2[order(data2$Name_3), ]
data2$date <- date