이 두 목록을 다음과 같이 상상해보십시오.
seq<-seq(1,16)
L1<-list(A=seq, B=seq, C=seq, D=seq)
v1=c(11,15,17,19,21,22,24,25,26,27,28,28,29,29,30,30)
v2=c(14,19,23,24,26,27,28,29,30,30,31,32,32,32,32,33)
v3=c(2,4,5,6,6,7,8,8,9,9,9,10,10,10,11,11)
v4=c(8,13,17,20,22,24,26,27,28,29,30,31,32,33,33,34)
L2<-list(A=v1,B=v2,C=v3,D=v4)
이제 제가하고 싶은 것은 nls 공식을 가진 특정 모델, L1 $ A와 L2 $ A, L1 $ B와 L2 $ B 등을 목록에 맞추는 것입니다. 각 벡터로 개별적으로 수행 할 수 있습니다. 예 :
nls.A<-nls(L2.A~(a/b)*(1-exp(-b*L1.A)),
start=list(a=1, b=0.1),
trace= TRUE, data=data.frame(L1$A, L2$A))
하지만 각 목록의 4 개 요소에 대해이를 수행하고 4 개 ($ A, $ B, $ C, $ D) 결과가 모두 포함 된 목록 인 개체를 검색하고 싶습니다.
매우 권장되지는 않지만 for 루프를 사용해 보았습니다.
for (i in L1) {
nls(L2.i~(a/b)*(1-exp(-b*L1.i)),
start=list(a=1, b=0.1),trace= TRUE,
data=data.frame(L1$i, L2$i))
}
그러나 그것은 또한 내 질문에 대답하지 않을 것입니다 (저는 정말로 저주받은 목록이 필요합니다) 나는 lapply가있는 것이 이상적이라고 가정하지만 lapply를 사용하여 그러한 일을하는 방법에 대해서는 전혀 모릅니다. 이견있는 사람?
mapply
annonymus 기능과 함께 사용
res <- mapply(function(x,y){
nls(y~(a/b)*(1-exp(-b*x)),
start=list(a=1, b=0.1),
trace= TRUE, data=data.frame(x, y))
},L1,L2, SIMPLIFY=FALSE)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다