我正在學習生成回圈。我有這個來自 "betapart "包的函式:
beta.diversity <- beta.sample(x, index. family="Sorensen"/span>。 站點= n,樣本= n)
where
x:資料框,其中行是站點,列是物種。
index.family:異質性指數家族,部分匹配 "sorensen "或 "jaccard"。
sites:將計算多站點異同度的站點數量。如果沒有指定,默認為所有站點。 samples:重復的數量。如果沒有指定,默認為1。
我需要的是在一個矩陣中運行相同的函式,但每次增加站點(有些矩陣有1000個站點)
。我想用 "lapply "函式可能會奏效,但我想不出如何奏效。
謝謝你!
uj5u.com熱心網友回復:
看看一個通用的回圈是如何作業的:
fruits < - c("蘋果"。 "桃子", "梨子")
# 直接使用矢量中的元素
for(fruit in fruits){
print(fruit)
}
# 你也可以使用每個元素的索引。
for(i in 1。 length(fruits)){>
print(fruits[i])
}
看看一個通用的latly是如何作業的:
lapply(fruits, print)
從betapart包中獲取示例資料:
library(betapart)
data(bbsData)
dat<- bbs2000[,1。 10]
用一個回圈:
# Retain results
結果 <- list()
# 回圈查看每個網站的數量 # 回圈查看每個網站的數量
allnsites = c(2。 10)
for(i in 1。 length(allnsites)){>
beta.diversity <- beta.sample(dat, index。 family="sorensen"/span>。 sites= allnsites[i]。 樣本= 1)
# 報告每個迭代中的站點數量
beta.diversity$sites <- allnsites[/span>i]
結果[[i] <- beta.diversity
}
用lapply():
lapply(allnsites, FUN = beta。 sample, x = dat, index. family = "sorensen", samples = 1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/322205.html
標籤:
下一篇:如何對這個資料框架重新排序?
