r语言 - 包移动HMM连续数据中的准备数据功能错误



我正在尝试在R包moveHMM中使用prepData函数。我收到"prepData(x, coordNames = c("lon", "lat"(的错误(:每只动物的观察必须是连续的。

x 是一个具有列名 "ID"、"long"、"lat" 的数据帧。ID列是每个动物的名称作为字符,lon/lat是数字。没有 NA 值,没有缺失的行。

我不知道这个错误是什么意思,也无法修复它。请帮忙。

x <- data.frame(dat$ID, dat$lon, dat$lat)
hmmgps <- prepData(x, coordNames=c("lon", "lat"))

函数 prepData 假定每个轨道(或每个动物(的行在数据框中分组在一起。错误消息指示情况并非如此,并且至少拆分了一个轨道。例如,以下(人工(数据集会导致此错误:

> data
ID      lon       lat
1  1 54.08658 12.190313
2  1 54.20608 12.101203
3  1 54.18977 12.270896
4  2 55.79217  9.943341
5  2 55.88145  9.986028
6  2 55.91742  9.887342
7  1 54.25305 12.374541
8  1 54.28061 12.190078
这是因为 ID 为">

1"的轨道分为两部分,由 ID 为"2"的轨道隔开。

轨迹必须是连续的,即所有ID为"1"的观测值都应该排在第一位,然后是ID为"2"的所有观测值。一种可能的解决方案是按 ID 和日期对数据进行排序。

考虑相同的数据集,带有"日期"列:

> data
ID      lon       lat                date
1  1 54.08658 12.190313 2019-09-06 14:20:00
2  1 54.20608 12.101203 2019-09-06 15:20:00
3  1 54.18977 12.270896 2019-09-06 16:20:00
4  2 55.79217  9.943341 2019-09-04 07:55:00
5  2 55.88145  9.986028 2019-09-04 08:55:00
6  2 55.91742  9.887342 2019-09-04 09:55:00
7  1 54.25305 12.374541 2019-09-06 17:20:00
8  1 54.28061 12.190078 2019-09-06 18:20:00

在回答该问题之后,您可以使用以下命令定义有序数据集:

> data_ordered <- data[with(data, order(ID, date)),]
> data_ordered
ID      lon       lat                date
1  1 54.08658 12.190313 2019-09-06 14:20:00
2  1 54.20608 12.101203 2019-09-06 15:20:00
3  1 54.18977 12.270896 2019-09-06 16:20:00
7  1 54.25305 12.374541 2019-09-06 17:20:00
8  1 54.28061 12.190078 2019-09-06 18:20:00
4  2 55.79217  9.943341 2019-09-04 07:55:00
5  2 55.88145  9.986028 2019-09-04 08:55:00
6  2 55.91742  9.887342 2019-09-04 09:55:00

然后,可以将排序数据(不包括日期列(传递给 prepData:

> hmmgps <- prepData(data_ordered[,1:3], coordNames = c("lon", "lat"))
> hmmgps
ID     step      angle        x         y
1  1 16.32042         NA 54.08658 12.190313
2  1 18.85560  2.3133191 54.20608 12.101203
3  1 13.37296 -0.6347523 54.18977 12.270896
4  1 20.62507 -2.4551318 54.25305 12.374541
5  1       NA         NA 54.28061 12.190078
6  2 10.86906         NA 55.79217  9.943341
7  2 11.60618 -1.6734604 55.88145  9.986028
8  2       NA         NA 55.91742  9.887342

我希望这有所帮助。

最新更新