vlambda博客
学习文章列表

R语言批量处理植物名信息


今天发现一个不错的植物信息方面的程序包“plantlist”,主要以下几个功能:


1、批量查询植物科属,内置的数据主要来源于The Plant List网站,其中被子植物采用APGIII分类系统,同时提供维管植物每个科的编号。
2、直接生成科/属/种的列表
3、用中文名批量查询植物学名、科属、分布、海拔、在中国的IUCN等级。
4、查询学名的接受状态以及完整学名等。

需要查询的数据准备:

R语言批量处理植物名信息



01

安装程序包


library(devtools)#没有的话就安装install.packages("devtools")library(xlsx)#读取xlsx文件library(stringr)#安装plantlist包,在GitHub网址:https://github.com/helixcn/plantlistinstall_github("helixcn/plantlist")


02


代码


直接复制黏贴就好,结果为3.csv

data <- data.frame()#简历数据框plants<-read.xlsx("植物名录.xlsx",1,header=T,encoding="UTF-8")#读取植物名录species<-plants[,1]#读取第一列for (i in 1:length(species)) {b<-CTPL(species[i])#根据植物名获取信息f<-b[,3]#根据第三列的拉丁名信息l<-"×"ifelse(is.na(f)==T,ifelse(is.na(str_count(f,l)==1)==T,g<-status(0),g<-status(f)),g<-status(f))#判断拉丁名是否为空和是否包含乘号×,包含则跳过zy <- data.frame(b,g)#数据汇总data <- rbind(data,zy)#数据框封装}write.csv(data,file="./3.csv")#导出数据文件为3.csv

其中status函数是用于判断是否为The Plant List 1.1接受名,如果不需要则代码如下:

data <- data.frame()#简历数据框plants<-read.xlsx("植物名录.xlsx",1,header=T,encoding="UTF-8")#读取植物名录species<-plants[,1]#读取第一列for (i in 1:length(species)) {b<-CTPL(species[i])#根据植物名获取信息zy <- data.frame(b)#数据汇总data <- rbind(data,zy)#数据框封装}write.csv(data,file="./3.csv")#导出数据文件为3.csv

03


结果





R语言可视化分析:



详细说明可见:http://blog.sciencenet.cn/blog-255662-846673.html

参考文献:

Jinlong Zhang (2018). plantlist: Looking Up the Status of Plant Scientific Names based on The Plant List Database. R package version 0.5.3. https://github.com/helixcn/plantlist/