tapply(dat $`滞后日期`,INDEX = dat $ Location,FUN = diff(dat $`滞后日期`))

时间:2017-05-23 10:34:55

标签: r tapply

有人可以解释一下为什么这不起作用吗?

tapply(dat$`lagged Date`, INDEX = dat$Location, FUN = diff(dat$`lagged Date`))

我收到以下错误:

  

match.fun(FUN)出错:'diff(dat $ lagged Date)'不是   功能,性格或符号

structure(list(`lagged Date` = structure(c(1466306880, 1466307060, 
1466307240, 1466307420, 1466307600, 1466307780), class = c("POSIXct", 
"POSIXt"), tzone = "UTC"), Location = c(309, 309, 309, 309, 309, 
309), Duration = c(0, 0, 0, 0, 0, 0), Latitude = c(53.50205667, 
53.501915, 53.50183667, 53.50178833, 53.50184, 53.50186167), 
    Longitude = c(-3.354733333, -3.354096667, -3.353838333, -3.353673333, 
    -3.353711667, -3.353741667), `Number of Records` = c(1, 1, 
    1, 1, 1, 1), Speed = c(0.9, 0, 0, 0, 0, 0), `Sum of Var` = c(38, 
    38, 38, 38, 38, 38), check = c(0, 0, 0, 0, 0, 0)), .Names = c("lagged Date", 
"Location", "Duration", "Latitude", "Longitude", "Number of Records", 
"Speed", "Sum of Var", "check"), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame"))
谢谢你!

1 个答案:

答案 0 :(得分:0)

我不确定您想要实现什么,但仅使用i-09e0d805cc,i-091a61038,i-07d3022,i-0428ac7c4c,i-970dc5c4d99,i-014c4ea,i-0ac924df,i-031f6 and so on.. 作为diff部分可以正常工作并生成此输出:

FUN

如果要将输出转换为tapply(dat$`lagged Date`, INDEX = dat$Location, FUN = diff) $`309` Time differences in mins [1] 3 3 3 3 3 ,可以通过仅选择hours - 列表对象的值并转换它们来实现:

difftime

输出如下:

as.numeric(tapply(dat$`lagged Date`, INDEX = dat$Location, FUN = diff)[[1]], units = "hours")