在R中为多ID数据框添加释放信息并过滤释放前观测值
使用dplyr处理动物位置数据与释放元数据
步骤1:统一时间格式(关键前提)
先确保两个数据框的时间列是可比较的datetime类型,避免时间逻辑出错:
library(dplyr) library(lubridate) # 推荐用这个包简化时间处理 # 替换成你实际的时间列名,时间格式函数按需调整(比如ymd、dmy_hms等) sub <- sub %>% mutate(timestamp = ymd_hms(timestamp)) stack <- stack %>% mutate(release_time = ymd_hms(release_time))
步骤2:匹配释放元数据并添加空列
通过id关联两个数据集,同时添加指定的空列并设为NA:
combined_data <- sub %>% left_join(stack, by = "id") %>% mutate(a = NA, b = NA, c = NA)
步骤3:过滤释放前的观测记录
筛选出观测时间晚于或等于对应动物释放时间的记录:
filtered_data <- combined_data %>% filter(timestamp >= release_time)
注:如果你的时间列、id列名称与示例不同,替换成实际列名即可;时间格式转换函数需根据数据的实际格式调整(比如dmy处理日-月-年结构的时间)。
内容的提问来源于stack exchange,提问作者smok
相关产品推荐
相关产品推荐

