リストがあり、リストの要素を順番に(1つずつ)選択し、関数にプラグインしたいとします。ここで私は各要素を手動で接続するコードです。 apply
機能を使用したり、for
ループを使用せずに自動的にどうすればいいですか?つまり、[[1]]
を選択してから[[2]]
を選択する方法です。Rの中でapplyとforループなしでリストの要素を順番に選択する方法
mu1 <- list(2,3,4)
sd1 <- list(0.5,0.6,0.7)
w <- c(0.5,0.2,0.3)
set.seed(123)
mylist <- list(rnorm(10,mu1[[1]],sd1[[1]]),
rnorm(10,mu1[[2]],sd1[[2]]),
rnorm(10,mu1[[3]],sd1[[3]]))
ta <- list(c(0.5,0.6,0.7,0.4,0.3,0.5,0.65,0.2,0.9,0.1),c(0.4,0.6,0.7,0.2,0.3,0.5,0.65,0.2,0.8,0.3),
c(0.3,0.2,0.7,0.4,0.3,0.5,0.25,0.2,0.6,0.4))
xx <- sum(ta[[1]]*(log(w[1])+dnorm(mylist[[1]],log=T)),ta[[2]]*(log(w[2])+dnorm(mylist[[2]],log = T)),ta[[3]]*
(log(w[3])+dnorm(mylist[[3]],log = T)))