【问题标题】:Make a dataframe from a call通过调用创建数据框
【发布时间】:2021-09-16 09:30:45
【问题描述】:

我尝试使用 rgbif api 下载具有此代码国家的特定国家/地区的生物多样性数据

我试试这个

library(rgbif)
dfexample <- dataset_search(country="US", limit = 30)

可以做成dataframe吗?

【问题讨论】:

  • 这在 R 中看起来无法执行。
  • @IRTFM 我更新了
  • 你会得到一个包含 4 个命名元素的列表,每个元素都是不同长度的子列表。您需要从当前不是矩形的东西中描述要以矩形方式排列的东西。
  • @IRTFM 使用 4 个元素及其子列表作为时尚形式中的每一列,如 elementname.sublistname 以每列一列。元素数据的示例有 data.datasetTitle、data.datasetKey 等列。
  • 如果我的回答不是你想要的,那么你需要edit你的问题来包含一个更好的描述。不要使用 cmets 来修改问题。 (看不到任何名称为“data.datasetTitle”、“data.datasetKey”的内容

标签: r analysis geo


【解决方案1】:

就目前而言,这个问题还不清楚。

> names(dfexample)
#[1] "meta"         "data"         "facets"       "descriptions"

sapply(dfexample,class)
$meta
#-----
[1] "data.frame"

$data
[1] "tbl_df"     "tbl"        "data.frame"

$facets
[1] "NULL"

$descriptions
[1] "list"

sapply(dfexample, length)
#------
        meta         data       facets descriptions 
           4            8            0           30 

如果您希望数据元素成为数据框,那么它已经是一个小标题,所以只需提取它:

  dfexample$data    # might be what you wanted

您可以使用 str 查看 tbl_df 中的列名。它的行为应该像普通 R 函数的数据框:

str(dfexample$data)
tibble [30 × 8] (S3: tbl_df/tbl/data.frame)
 $ datasetTitle             : chr [1:30] "EOD – eBird Observation Dataset" "GBIF Backbone Taxonomy" "Catalogue of Life - June 2021" "NCBI Taxonomy" ...
 $ datasetKey               : chr [1:30] "4fa7b334-ce0d-4e88-aaae-2e0c138d049e" "d7dddbf4-2cf0-4f39-9b2a-bb099caae36c" "7ddf754f-d193-4cc9-b351-99906754a03b" "fab88965-e69d-4491-a04d-e3198b626e52" ...
 $ type                     : chr [1:30] "OCCURRENCE" "CHECKLIST" "CHECKLIST" "CHECKLIST" ...
 $ hostingOrganization      : chr [1:30] "Cornell Lab of Ornithology" "GBIF Secretariat" "The Catalogue of Life Partnership" "GBIF Secretariat" ...
 $ hostingOrganizationKey   : chr [1:30] "e2e717bf-551a-4917-bdc9-4fa0f342c530" "fbca90e3-8aed-48b1-84e3-369afbd000ce" "f4ce3c03-7b38-445e-86e6-5f6b04b649d4" "fbca90e3-8aed-48b1-84e3-369afbd000ce" ...
 $ publishingOrganization   : chr [1:30] "Cornell Lab of Ornithology" "GBIF Secretariat" "The Catalogue of Life Partnership" "National Center for Biotechnology Information (NCBI)" ...
 $ publishingOrganizationKey: chr [1:30] "e2e717bf-551a-4917-bdc9-4fa0f342c530" "fbca90e3-8aed-48b1-84e3-369afbd000ce" "f4ce3c03-7b38-445e-86e6-5f6b04b649d4" "2f2e4f28-d929-4609-937b-9a8ebd265159" ...
 $ publishingCountry        : chr [1:30] "US" NA NA "US" ..

【讨论】:

  • 来自 4 个元素,其中两个包含数据数据和描述。使用此选项,可以接收数据dfdescriptions &lt;- as.data.frame(dfexample$descriptions) 的数据框,它是如何可能的,以及该数据集中的一列带有描述?
  • 如果你想从一个与数据帧中的行数长度相同的向量中增加一列,那么只需使用$&lt;-函数分配它:res &lt;- dfexample$data; res$description &lt;- dfexample$description
猜你喜欢
  • 1970-01-01
  • 2018-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-07
  • 1970-01-01
  • 1970-01-01
  • 2021-06-16
相关资源
最近更新 更多