嗨我有一个包含所有字符数据类型的数据集
col1 min_date max_date
Minutes 2016-06-01 2016-06-27 11:15:00
15_minutes 2016-06-01 2016-06-27 11:15:00
现在我尝试根据“col1”中的值制作时间序列 分钟:
time_index <- seq(from = ymd(df$min_date),
to = ymd_hms(df$max_date), by = "minute")
持续15分钟:
time_index <- seq(from = ymd(df$min_date),
to = ymd_hms(df$max_date), by = "15 minute")
然后我收到错误
seq.Date中的错误(from = ymd(df $ min_date), to = ymd_hms(df $ max_date),by =“minute”,: 'from'必须长度为1
我们如何解决,提前谢谢
答案 0 :(得分:0)
我们可以使用Map
执行此操作,因为seq
未进行矢量化以获取多个日期范围。使用Map
,我们将输入参数指定为数据集列,其顺序与from
,to
和by
相同,并应用seq
。 &#39; col1&#39;子字符串用于by
参数
df1$col1 <- sub("utes", "", sub("_", " ", tolower(df1$col1)))
lst <- Map(seq, as.POSIXct(df1$min_date),
as.POSIXct(df1$max_date), df1$col1)
lapply(lst, head, 2)
#[[1]]
#[1] "2016-06-01 00:00:00 IST" "2016-06-01 00:01:00 IST"
#[[2]]
#[1] "2016-06-01 00:00:00 IST" "2016-06-01 00:15:00 IST"