我有一个包含大约10,000个物种的数据集。对于数据集中的每个物种,我想查询IUCN数据库中每个物种面临的威胁。我可以使用包rredlist中的rl_threats函数一次对一个物种执行此操作。下面是一个函数的例子,这个例子拉取北极兄弟会面临的威胁,并将它们分配给对象test1 (key是一个字符串,用作使用IUCN API的密码,保持不变,parse应该是真的,但不重要)。
test1<-rl_threats(name="Fratercula arctica",
key = '1234',
parse = TRUE)我想要获得我的数据集中所有10,000个物种的威胁。我的想法是使用一个循环,该循环将我的数据集中的名称传递到rl_threats命令的name=“”字段中。这是我试图构建的一个基本循环,但我得到了很多错误:
for (i in 1:df$scientific_name) {
rl_threats(name=i,
key = '1234',
parse = TRUE)
} 我如何将scientific_name列中的物种名称传递到rl_threats函数中,使R循环遍历并为每个物种拉出威胁?
谢谢你。
发布于 2020-11-09 09:53:30
您可以创建一个列表来存储输出。
result <- vector('list', length(df$scientific_name))
for (i in df$scientific_name) {
result[[i]] <- rl_threats(name=i, key = '1234', parse = TRUE)
}您还可以使用lapply:
result <- lapply(df$scientific_name, function(x) rl_threats(name=x, key = '1234', parse = TRUE))https://stackoverflow.com/questions/64744922
复制相似问题