[英]Loop names from two dataframe columns through an existing function in R
我在 dataframe 中有一個植物名稱列表。 植物名稱以“屬”后跟“種”的對聯形式出現。 在我的情況下,對聯已經跨列拆分(這應該會有所幫助)。 作為三個物種(Helianthus annuus、Pinus radiatia 和 Melaleuca leucadendra)的虛擬示例:
df <- data.frame(genus=c("Helianthus", "Pinus", "Melaleuca"), species=c("annuus","radiata", "leucadendra"))
我想在 package “Taxize”中使用 function 來對照數據庫(IPNI)檢查這些名稱。 沒有批次 function 用於此,煩人的查詢單個名稱的格式是:
checked <- ipni_search(genus='Helianthus', species='annuus')
我需要一個循環來將每個屬名及其相關物種名輸入到 function 中。 我可以做到這一點只是屬:
list <- df$genus
checked <- lapply(list, function(z) ipni_search(genus=z))
但我被各種各樣的結纏住了,試圖通過它傳遞物種。
任何幫助表示贊賞! 干杯
在索引上循環(或*apply
),而不是實際值:
checked = lapply(
1:nrow(df),
function(i) ipni_search(genus = df$genus[i], species = df$species[i])
)
或者,您可以使用Map
用於並行迭代多個向量/列表:
checked = Map(ipni_search, genus = df$genus, species = df$species)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.