You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用adehabitatLT::as.ltraj()报错:已转POSIXct仍提示日期类型不符

问题:adehabitatLT::as.ltraj() 日期参数类型错误

我使用adehabitatLT::as.ltraj()函数计算动物轨迹,该函数要求日期参数为POSIXct类。按照帮助文档示例步骤,我将日期时间转换为POSIXct类,但调用函数时仍出现以下错误:

错误信息:adehabitatLT::as.ltraj(xy = xy[id == "17", ], date = date[id
== : 对于II型对象,date应为"POSIXct"类

我的操作代码如下:

library(tidyverse)
library(lubridate)
library(rio)
library(sp)
library(adehabitatLT)

#import elk collar data
data<-import("https://www.sciencebase.gov/catalog/file/get/59d90ceee4b05fe04cc9b0f2?f=__disk__a8%2F84%2Fa6%2Fa884a68596e8ed85b6b956119db0f1fffc4e960c")
glimpse(data)
#following example: convert date-time to posixct, and ID to character
elk<-data%>%mutate(date=as.POSIXct(strptime(Date_Time_MST,"%m/%d/%Y",tz="US/Mountain")))%>%mutate(AID=as.character(AID))
#get id vector
id<-elk%>%dplyr::select(AID)
#get xy data
xy<-elk%>%dplyr::select(Easting, Northing)%>%coordinates()%>%as.data.frame()
#get dates
date<-elk%>%dplyr::select(date)%>%as.data.frame()
str(date)
#get trajectories for AID 17
tr<-adehabitatLT::as.ltraj(xy=xy[id=="17",],date=date[id=="17"], id="17")

问题原因

你将日期列成功转换为POSIXct类型后,又用as.data.frame()把它包装成了数据框;同时id变量也是数据框类型。但as.ltraj()要求date参数是POSIXct类型的向量,id用于筛选时也需要是向量,而非数据框。

修正方案

直接提取date和id的列向量,不要转成数据框,调整后的代码如下:

library(tidyverse)
library(lubridate)
library(rio)
library(sp)
library(adehabitatLT)

# 导入麋鹿项圈数据
data <- import("https://www.sciencebase.gov/catalog/file/get/59d90ceee4b05fe04cc9b0f2?f=__disk__a8%2F84%2Fa6%2Fa884a68596e8ed85b6b956119db0f1fffc4e960c")
glimpse(data)

# 转换日期时间为POSIXct,ID转为字符型
elk <- data %>% 
  mutate(date = as.POSIXct(strptime(Date_Time_MST, "%m/%d/%Y", tz = "US/Mountain")),
         AID = as.character(AID))

# 提取向量而非数据框
id <- elk$AID
xy <- elk %>% select(Easting, Northing) %>% coordinates() %>% as.data.frame()
date <- elk$date  # 直接提取POSIXct向量

# 生成AID 17的轨迹
tr <- adehabitatLT::as.ltraj(xy = xy[id == "17", ], date = date[id == "17"], id = "17")

内容的提问来源于stack exchange,提问作者Kevin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 02:06:11