0
我有四個矩陣列表(intdiv1
,intdiv2
,intdiv3
,intdiv4
)。列表的第一個元素是多樣性值矩陣div
(第1行:多樣性的觀測值obs
和第2行:多樣性的估計值est
),第二個元素是觀察和估計的標準誤差的矩陣,第三個元素是該列表是關於觀測和估計值的較低置信區間LCI
,第四個是估計和觀測多樣性的較高置信區間UCI
。這裏是一個列表的示例:將多個矩陣列表的內容整形爲一個數據幀
intdiv1<-
$div
q1 q2 q3 q4
obs 1 4 5 2
est 0 2 3 6
$sd
q1 q2 q3 q4
obs 2 4 4 2
est 0 2 1 2
$LCI
q1 q2 q3 q4
obs .1 .2 .2 .4
est 0 2 1 2
$UCI
q1 q2 q3 q4
obs .2 .4 .4 .2
est 0 2 1 4
我有四個列出了要我檢查四個不同區域相同的元素。我想使四個列表的內容成爲一個數據框,將列表的結果組合成一個數據框。每個矩陣的行將在數據框中成爲它們自己的變量。輸出將顯示如下(注:因爲我用的是sample
函數的輸出值將不會在示例列表匹配值:
output<- data.frame(list=
c("intdiv1","intdiv1","intdiv1","intdiv1",
"intdiv2","intdiv2","intdiv2","intdiv2",
"intdiv3","intdiv3","intdiv3","intdiv3",
"intdiv4","intdiv4","intdiv4","intdiv4"),
q=rep(c("1","2","3","4"),4),
div.obs=sample(c(1:50), 16, replace=TRUE),
div.est= sample(c(1:50), 16,replace=TRUE),
sd.obs=sample(c(0:5), 16,replace=TRUE),
sd.est=sample(c(0:5), 16,replace=TRUE),
LCI.obs=sample(c(1:50), 16,replace=TRUE),
LCI.est=sample(c(1:50), 16,replace=TRUE),
UCI.obs= sample(c(1:50), 16,replace=TRUE),
UCI.est=sample(c(1:50), 16,replace=TRUE))
我曾嘗試以下,以使一個單一的列表中的數據框:
df.intdiv1<- lapply(seq_along(intdivdf1), function (i) {
data.frame(obs.div=intdivdf1[[1]][1,],
obs.se=intdivdf1[[2]][1,],
obs.LCI=intdivdf1[[3]][1,],
obs.UCI=intdivdf1[[4]][1,],
est.div=intdivdf1[[1]][2,],
est.se=intdivdf1[[2]][2,],
est.LCI=intdivdf1[[3]][2,],
est.UCI=intdivdf1[[4]][2,]
)
})
intdivall<- rbind(df.intdiv1, df.intdiv2, df.intdiv3, df.intdiv4)
但是我得到的第一個函數錯誤,不認爲我的方法是最有效的