4つの行列のリスト(intdiv1
,、intdiv3
、intdiv4
)があります。このリストの第1要素は、ダイバーシティ値div
の行列(行1:ダイバーシティobs
の観測値と行2:ダイバーシティ推定値est
)であり、第2要素は、観測され推定された標準誤差se
の行列であり、第3要素はリストは、観測値と推定値の下限信頼区間であるLCI
であり、第4は、推定され観測された多様性の場合の上の信頼区間であるUCI
です。 1つのリストの例を次に示します。行列の複数のリストの内容を1つのデータフレームに変更する
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
私は調べている4つの異なる地域で同じ要素を持つ4つのリストを持っています。 4つのリストの内容を、リストの結果をデータフレームに組み合わせた1つのデータフレームにしたいと思います。各行列の行は、データフレーム内で独自の変数になります。私は、出力のための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)
しかし、私は最初の関数でエラーを取得し、私の方法が最も効率的だとは思わない