R语言实践——rWCVP生成可发表级别的物种发现记录矩阵

这篇具有很好参考价值的文章主要介绍了R语言实践——rWCVP生成可发表级别的物种发现记录矩阵。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

介绍

世界维管植物名录(WCVP)提供了已知的>340,000种维管植物物种的分布数据。该分布数据可用于构建植物物种名录的发现记录矩阵,rWCVP可以提供帮助。

除了 rWCVP 之外,还可以使用 tidyverse 包进行数据操作和绘图,并使用 gt 包来格式化表格。

先做好准备工作

library(rWCVP)
library(tidyverse)
library(gt)

在此示例中,使用==管道运算符 (%>%) 和 dplyr语法 ==- 如果不熟悉这些,我建议查看 https://dplyr.tidyverse.org/ 和其中的一些帮助页面。

1. 查询一组示例数据

对于这个例子,我们没有想要检查的特定区域或植物组,但这让我们有机会展示rWCVP中的其他功能之一!

我们想要一组物种,a)不太大,b)分布在几个WGSRPD 3级区域。巴西就是不错的选择,因为它有五个3级区域(对于这个目的来说,这是一个不错的数字,因为该表格将适合纵向页面)。让我们看看是否有一些大小不错的示例属,使用 wcvp_summary 函数:

wcvp_summary(taxon = "Myrtaceae", taxon_rank = "family", area=get_wgsrpd3_codes("Brazil"), grouping_var = "genus")%>%wcvp_summary_gt()

R语言实践——rWCVP生成可发表级别的物种发现记录矩阵,R语言,r语言,矩阵
Calycolpus看起来又漂亮又整齐——让我们看看这 8 个物种是如何分布在 5 个区域的。
我们可以使用相同的函数,但限制我们的分类单元并将我们的分组变量更改为 area。

wcvp_summary(taxon = "Calycolpus", taxon_rank = "genus", area=get_wgsrpd3_codes("Brazil"), grouping_var = "area_code_l3")%>%wcvp_summary_gt()

R语言实践——rWCVP生成可发表级别的物种发现记录矩阵,R语言,r语言,矩阵
嗯,也许有点太小了 - 它只出现在 5 个区域中的 3 个。Myrciaria呢?

wcvp_summary(taxon = "Myrciaria", taxon_rank = "genus", area=get_wgsrpd3_codes("Brazil"), grouping_var = "area_code_l3")%>%wcvp_summary_gt()

R语言实践——rWCVP生成可发表级别的物种发现记录矩阵,R语言,r语言,矩阵

2. 生成和格式化出现矩阵

为该属生成出现矩阵就像使用 generate_occurence_matrix 函数一样简单。

m = wcvp_occ_mat(taxon = "Myrciaria", taxon_rank = "genus", area=get_wgsrpd3_codes("Brazil"))
# A tibble: 23 × 7
   plant_name_id taxon_name             BZC   BZE   BZL   BZN   BZS
           <dbl> <chr>                <dbl> <dbl> <dbl> <dbl> <dbl>
 1        473796 Myrciaria alagoana       0     1     0     0     0
 2        534878 Myrciaria alta           0     0     1     0     0
 3        534776 Myrciaria cambuca        0     1     1     0     0
 4        131799 Myrciaria cordata        0     0     0     1     0
 5        131802 Myrciaria cuspidata      1     1     1     0     1
 6        131803 Myrciaria delicatula     1     0     1     0     1
 7        131806 Myrciaria disticha       0     1     1     0     0
 8        131810 Myrciaria dubia          1     0     0     1     0
 9        491614 Myrciaria evanida        0     0     1     0     0
10        131814 Myrciaria ferruginea     0     1     1     0     0
# ℹ 13 more rows
# ℹ Use `print(n = ...)` to see more rows

没关系,但是我们可以使用 gt 包让它更漂亮。让我们执行以下操作:

  • 删除 WCVP ID 列
  • 将taxon_id更改为“物种”
  • 使物种名称为斜体
  • 加粗列标题
  • 减少文本周围的空间,使字体大小为 12
  • 删除内部边框
  • 将 1 和 0 更改为 X 和空白
m_gt = m %>% 
  select(-plant_name_id) %>%
  gt() %>%
  cols_label(
    taxon_name = "Species"
  ) %>%
  tab_style(
    style = cell_text(style = "italic"),
    locations = cells_body(columns = taxon_name)
  ) %>%
  tab_options(
    column_labels.font.weight = "bold",
    data_row.padding = px(1),
    table.font.size = 12,
    table_body.hlines.color = "transparent",
  ) %>%
  text_transform(
    locations = cells_body(),
    fn = function(x) {
      ifelse(x==0, "", x)
    }
  ) %>%
  text_transform(
    locations = cells_body(),
    fn = function(x){
      ifelse(x==1, "X", x)
    }
  )

m_gt

R语言实践——rWCVP生成可发表级别的物种发现记录矩阵,R语言,r语言,矩阵
好多了!我们可以将此 gt 表另存为 HTML 表或图片。如果我们打算再制作几个表格,我们可以通过将表格样式保存为主题来节省空间(有关更多详细信息,请参阅 https://themockup.blog/posts/2020-09-26-functions-and-themes-for-gt-tables/)

occ_mat_theme <- function(x){
  x %>% cols_label(
    taxon_name = "Species"
  ) %>% 
  #make species names italic
        tab_style(
        style=cell_text(style="italic"),
        locations = cells_body(
          columns= taxon_name
        )
      ) %>% 
  tab_options(
    # some nice formatting
        column_labels.font.weight = "bold",
        data_row.padding = px(1),
        table.font.size = 12,
        table_body.hlines.color = "transparent",
        ) %>%
  # change the zeroes into blanks
      text_transform(
        locations = cells_body(),
        fn = function(x){
          ifelse(x == 0, "", x)
        }
      ) %>% 
  # change the 1s into X
        text_transform(
        locations = cells_body(),
        fn = function(x){
          ifelse(x == 1, "X", x)
        }
      )
}

gt() 的最大问题是它不支持 Word - 要直接导出到 docx 文件,请查看 flextable 。包括或排除发生类型 如果我们只想知道本地或引进物种怎么办?此函数可以选择筛选其中一个。巴西Myrciaria在这方面看起来不是很有趣(我们可以从汇总表中看到只引入了一个物种),所以让我们看看一个更具入侵性的群体 - 北欧的Poa(2级区域)。

wcvp_summary(taxon = "Poa", taxon_rank = "genus", area=get_wgsrpd3_codes("Northern Europe"), grouping_var = "area_code_l3") %>% wcvp_summary_gt()

R语言实践——rWCVP生成可发表级别的物种发现记录矩阵,R语言,r语言,矩阵
还有一些工作要做。首先,让我们只看本地物种:

p = wcvp_occ_mat(taxon = "Poa", taxon_rank = "genus", area=get_wgsrpd3_codes("Northern Europe"), introduced = FALSE, extinct = FALSE, location_doubtful = FALSE)
p
# A tibble: 20 × 11
   plant_name_id taxon_name        DEN   FIN   FOR   GRB   ICE   IRE
           <dbl> <chr>           <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
 1        435004 Poa abbreviata      0     0     0     0     0     0
 2        435078 Poa alpigena        0     1     1     0     1     0
 3        435085 Poa alpina          0     1     1     1     1     1
 4        435167 Poa angustifol…     1     1     0     1     0     0
 5        435194 Poa annua           1     1     1     1     1     1
 6        435235 Poa arctica         0     1     0     0     0     0
 7        435458 Poa bulbosa         1     1     0     1     0     0
 8        435622 Poa compressa       1     1     0     0     0     0
 9        435932 Poa flexuosa        0     0     0     1     1     0
10        435996 Poa glauca          0     1     1     1     1     0
11        436089 Poa hartzii         0     0     0     0     0     0
12        436146 Poa humilis         1     1     1     1     1     1
13        436189 Poa infirma         0     0     0     1     0     0
14        436383 Poa lindebergii     0     1     0     0     0     0
15        436600 Poa nemoralis       1     1     1     1     1     1
16        436739 Poa palustris       1     1     0     1     0     0
17        436906 Poa pratensis       1     1     1     1     1     1
18        437092 Poa remota          1     1     0     0     0     0
19        437424 Poa supina          1     1     0     0     0     0
20        437547 Poa trivialis       1     1     1     1     1     1
# ℹ 3 more variables: NOR <dbl>, SVA <dbl>, SWE <dbl>

我们可以像上面一样格式化这个矩阵,但让我们跳过那些步骤,直接处理引入的物种。我们正在做与以前相同的格式设置,但也添加一个标题 - html 函数可以将我们的属名和所有内容斜体化!

p = wcvp_occ_mat(taxon = "Poa", taxon_rank = "genus", area=get_wgsrpd3_codes("Northern Europe"),native = FALSE, introduced = TRUE, extinct = FALSE, location_doubtful = FALSE)
p %>% 
  select(-plant_name_id) %>% #remove ID col
  gt() %>% 
  occ_mat_theme() %>%  #the theme we defined above
  #add a header
  tab_header(title=html("Introduced <em>Poa</em> species in Northern Europe")) 

R语言实践——rWCVP生成可发表级别的物种发现记录矩阵,R语言,r语言,矩阵

3. 额外地对国家进行处理

使用 gt 创建的表非常灵活 - 假设我们想查看美加边境出现的记录:

f = wcvp_occ_mat("Fritillaria", "genus", area=c("WAS","ORE","IDA","MNT","ABT","BRC"))
f_gt = f %>%
  select(-plant_name_id) %>%
  gt() %>%
  occ_mat_theme() %>%
  tab_header(title = html("<em>Fritillaria</em> species in Northwest USA and Southwest Canada"))
f_gt

R语言实践——rWCVP生成可发表级别的物种发现记录矩阵,R语言,r语言,矩阵
了解哪些代码在美国,哪些在加拿大非常有用。我们可以使用 rWCVP 中包含的数据来创建检索表。

wgsrpd_mapping %>%
  filter(LEVEL3_COD %in% c("WAS","ORE","IDA","MNT","ABT","BRC")) %>%
  select(LEVEL3_NAM, LEVEL3_COD, COUNTRY) %>%
  gt() %>%
  tab_options(
    column_labels.font.weight = "bold",
    data_row.padding = px(1),
    table.font.size = 12,
    table_body.hlines.color = "transparent",
  )

R语言实践——rWCVP生成可发表级别的物种发现记录矩阵,R语言,r语言,矩阵
不过,将其放在发生矩阵上确实会更好。输入 tab_spanner():

f_gt %>%
  tab_spanner(label = "United States", columns = c(IDA, MNT, ORE, WAS)) %>%
  tab_spanner(label = "Canada", columns = c(ABT, BRC))

R语言实践——rWCVP生成可发表级别的物种发现记录矩阵,R语言,r语言,矩阵
gt 还有很多事情可以做 - 请参阅 https://gt.rstudio.com/ 以获取帮助、示例和文档。文章来源地址https://www.toymoban.com/news/detail-670532.html

到了这里,关于R语言实践——rWCVP生成可发表级别的物种发现记录矩阵的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于R语言的物种气候生态位动态量化与分布特征模拟

    目录 专题一 引言 专题二 数据获取与处理方法 专题三 组合物种分布模型(Ensemble Species Distribution Model)的原理与使用 专题四 拓展研究 专题五 结果分析与论文写作 专题六 案例分析 专题七 总结和展望 利用R语言进行物种气候生态位动态量化与分布特征模拟,不仅可以量化描

    2024年02月08日
    浏览(36)
  • 【案例教程】基于R语言的物种气候生态位动态量化与分布特征模拟

    在全球气候快速变化的背景下,理解并预测生物种群如何应对气候变化,特别是它们的地理分布如何变化,已经变得至关重要。利用R语言进行物种气候生态位动态量化与分布特征模拟,不仅可以量化描述物种对环境的需求和适应性,预测物种的潜在生态位和分布,还可以模拟

    2024年02月11日
    浏览(37)
  • 【随手记录】Llama Tutorial 大语言模型实践 手把手系列带实践源码

    这个tutorial的契机是yy突然看到了一个workshop 所以类似于一周大作业的形式,输入command输出使用了自动驾驶哪些模块,代码在这里 所以就干一干,顺便写一个tutorial给大家参考和教程 引申更多的应用 参考资料: https://github.com/facebookresearch/codellama, https://github.com/facebookresear

    2024年02月03日
    浏览(55)
  • 论文复制ChatGPT按钮被发表,撤回后再曝多个类似案例;Midjourney 生成大师级的人像

    🦉 AI新闻 🚀 论文复制ChatGPT按钮被发表,撤回后再曝多个类似案例 摘要 :一篇物理论文复制了ChatGPT按钮内容,经过两个月同行评审并在杂志上发表。这一现象被知名打假人发现后,发表商决定撤回该论文。此外,发现还有多个含有类似内容的论文被发表。这给同行评审员

    2024年02月05日
    浏览(34)
  • R语言复现:轨迹增长模型发表二区文章 | 潜变量模型系列(2)

    培训通知 Nhanes数据库数据挖掘,快速发表发文的利器,你来试试吧! 欢迎报名郑老师团队统计课程 ,4.20直播。 案例分享 2022年9月,中国四川大学学者在 《Journal of Psychosomatic Research》 (二区,IF=4.7) 发表题为: \\\" Associations between trajectories of depressive symptoms and rate of cogniti

    2024年04月14日
    浏览(49)
  • 喜讯 | 深信科创与长安汽车AI Lab合作,在IEEE TIV发表《自然对抗安全关键测试场景生成》论文

    近日,深信科创与长安汽车AI Lab合作完成的《Adversarial Safety-Critical Scenario Generation using Naturalistic Human Driving Priors》(利用人类自然驾驶先验条件生成对抗性安全关键场景)论文,被 IEEE Transactions on Intelligent Vehicles (简称:IEEE TIV)正式录用,获智能汽车领域权威学术期刊认可

    2024年02月04日
    浏览(45)
  • R语言【BIEN】——BIEN_occurrence_species():从BIEN中提取指定物种的观察数据

    Package  BIEN  version 1.2.6 BIEN_occurrence_species()从BIEN数据库下载特定物种的观察记录。 参数【species】:一个物种或多个物种。属名和种加词之间应该有一个空格。属名应该首字母大写。 参数【cultivated】:是否返回已知的栽培记录?默认为FALSE。 参数【new.world】:NULL (默认值)

    2024年02月22日
    浏览(32)
  • AIGC:通过 ChatGPT 和 Mermaid 实现语言描述生成流程图实践

    本文旨在介绍如何使用 ChatGPT 和 Mermaid 语言生成流程图的技术。在现代软件开发中,流程图是一种重要的工具,用于可视化和呈现各种流程和结构。结合 ChatGPT 的自然语言处理能力和 Mermaid 的简单语法,可以轻松地将文本描述转化为图形表示,使技术文档更具可读性和易懂性

    2024年02月15日
    浏览(63)
  • 记录--按钮级别权限怎么控制

    最近的面试中有一个面试官问我按钮级别的权限怎么控制,我说直接 v-if 啊,他说不够好,我说我们项目中按钮级别的权限控制情况不多,所以 v-if 就够了,他说不够通用,最后他对我的评价是做过很多东西,但是都不够深入,好吧,那今天我们就来深入深入。 因为我自己没

    2024年02月06日
    浏览(36)
  • 保姆级别使用android studio 生成jar包

    目录 1首先生成一个android library  2 找到刚才创建的项目build.Gradle  -----build.Gradle(:mylibrary)  3 写入最关键的执行代码 4  点击启动按钮  5 可以看到生成一个jar包了  6 如果一个jar包依赖了其他包,也可以直接一起打包依赖包。  7  使用jar包 File ---New---New Module 选择Android Libra

    2024年02月03日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包