0

)

我想使用 lapply 将 dismo::maxent 应用于多个数据集的列表。但是我收到错误消息,即参数具有不同的行数,这很奇怪,因为我从另一个数据集创建了一个数据集,并且它们应该具有相同的行数(通过 nrow() 证明)。

该函数具有以下结构:

maxent(x=dataFrame of environmental conditions at species locations (or background samples)
p=vector of 0 or 1 for species absence(0) or presence(1))

我试过了:

me_lapply <- lapply(X=split_data_env_df, FUN=maxent, dummy_presence_list)

其中 dummy_presence_list 由

dummy_presence_list <- list(rep(1, nrow(split_data_env_df[[1]])), rep(1, nrow(split_data_env_df[[2]])))

总结一下:我有两个列表:

  1. split_data_env_df其中包含 2 个数据框,(一个有 3 行,第二个有 2 行,每行代表物种位置的环境变量)和每个 df(温度和降水)的 2 列
t_mean 沉淀 t_mean2 沉淀2
价值1 价值2 价值7 价值8
价值3 价值4 价值9 价值10
价值5 价值6
  1. dummy_presence_list其中包含 2 个向量:c(1,1,1) 和 c(1,1) 告诉 maxent 公式来自 split_data 的环境参数意味着该物种存在于这些位置

我想使用 lapply 在每个列表的第一个元素和所述列表的第二个元素上运行 maxent(x, split_data_env_dfp dummy_presence_list)

通过 lapply 的 maxent 函数返回参数的行数不相等:3、2

我认为这与函数处理数据的方式有关,而不是与数据本身有关,因为行数实际上是相同的。请注意,这只是用于测试目的的简化数据集。我的实际数据集要大得多,所以让 lapply 工作会很好。谢谢 :-)

4

0 回答 0