使用 R 从 BIEN 数据库获取物种名称数据,包括“-”和“x”等字符

问题描述 投票:0回答:1

我正在尝试从 R 中的植物数据库 BIEN 加载数据。现在我遇到了一个问题,因为似乎没有加载三个物种“Abies borisii-regis”、“Abies equal-trojani”的数据和“冷杉”。我猜想是物种的名称导致了问题,因为该代码适用于名称不包含“ - ”等字符的其他物种。我使用以下代码:

library(BIEN)
occ <- BIEN_occurrence_species(species = c("Abies borisii-regis"), 
                           cultivated = FALSE,
                           natives.only = TRUE,
                           collection.info = FALSE,
                           all.taxonomy = TRUE)
ccdf <- data.frame(species = occ$scrubbed_species_binomial, # ccdf = clean coordinate data frame 
               decimalLongitude = occ$longitude,
               decimalLatitude = occ$latitude,
               dataset = "BIEN")

并收到此错误消息:

Error in data.frame(species = occ$scrubbed_species_binomial, decimalLongitude = occ$longitude,  : 
  Arguments imply different number of rows: 0, 1 

(德文原版是:)

Fehler in data.frame(species = occ$scrubbed_species_binomial, decimalLongitude = occ$longitude,  : 
  Argumente implizieren unterschiedliche Anzahl Zeilen: 0, 1 

我已经尝试通过 TNRS(分类名称解析服务)检查名称来确保使用正确的物种名称。基于此,正确的名称似乎是“Abies x borisii-regis”和“Abiesnordmaniana subsp.equi-trojani”,但我仍然收到错误消息。

有谁知道如何解决这个问题以便我可以获得数据?或者有人知道我是否必须以不同的方式输入物种名称中的字符“-”和“x”,以便 R 正确识别它们?

r character
1个回答
0
投票

考虑到我可能完全错误,但是

BIEN
确实提供了一种方法来评估其他研究人员是否上传了有关某人感兴趣的物种的数据

species_lst = BIEN::BIEN_list_all()
length(which(grep('Abies+', species_lst$species, fixed = TRUE) == TRUE))
[1] 0
 # or
which(stringr::str_detect(species_df_ord, 'Abies ') == TRUE)
integer(0)

这似乎表明其他研究人员尚未上传与您感兴趣的物种相关的数据,尽管您可能决定这样做。并且

BIEN
促进了这一过程。

如前所述,我准备完全错误,但在这种情况下,您似乎是第一个提供数据或搜索“Abies borisii-regis”、“Abies equal-trojani”和“Abies Bornmuelleriana”的研究人员.

我不认为这是大写/小写的问题,他们还没有。

© www.soinside.com 2019 - 2024. All rights reserved.