如何跟踪数据框中拆分的位置?

我有一些动物追踪GPS数据,其中包含ID和时间戳。

# prep the data
ID = c(rep("A",5),rep("B",5))
DateTime = c("2014-09-25 08:39:45","2014-09-25 08:39:48","2014-09-25 08:40:44","2014-09-25 09:04:00","2014-09-25 09:04:10","2014-09-25 08:33:32","2014-09-25 08:34:41","2014-09-25 08:35:24","2014-09-25 09:04:09")
speed = c(1:10)
df = data.frame(ID,DateTime,speed,stringsAsFactors = FALSE)
df$DateTime<-as.POSIXct(df$DateTime,tz = "UTC")

如果重定位之间有很大的时间间隔(例如GPS单元离线了一段时间),我可以拆分数据。

library(dplyr)
df %>%
  group_by(ID) %>%
  mutate(timeDiff = c(NA,difftime(tail(DateTime,-1),head(DateTime,units="sec"))) %>%
  mutate(newID = paste0(ID,cumsum(!is.na(timeDiff) & timeDiff > 100))) %>%
  ungroup()

这给了我以下输出:



# A tibble: 10 × 5
#       ID            DateTime speed timeDiff newID
#    <chr>              <dttm> <int>    <dbl> <chr>
# 1      A 2014-09-25 08:39:45     1       NA    A0
# 2      A 2014-09-25 08:39:48     2        3    A0
# 3      A 2014-09-25 08:40:44     3       56    A0
# 4      A 2014-09-25 09:04:00     4     1396    A1
# 5      A 2014-09-25 09:04:10     5       10    A1
# 6      B 2014-09-25 08:33:32     6       NA    B0
# 7      B 2014-09-25 08:34:41     7       69    B0
# 8      B 2014-09-25 08:35:24     8       43    B0
# 9      B 2014-09-25 09:04:00     9     1716    B1
# 10     B 2014-09-25 09:04:09    10        9    B1

但是我想在原始ID名称和拆分后附加的新标识符之间放置一个分隔符。所以我最终得到A_0,A_0,A_0,A_1等。

我该怎么做?

cjwannafly 回答:如何跟踪数据框中拆分的位置?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3159058.html

大家都在问