R 将nls应用于列表中的元素
设想以下两个列表:R 将nls应用于列表中的元素,r,list,lapply,nls,R,List,Lapply,Nls,设想以下两个列表: 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
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)
但这也不能回答我的问题(我真的需要这个该死的列表),我假设使用lappy的东西是最理想的,但是不知道如何使用lappy来做这样的事情。有什么想法吗?将
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)
res
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))
}
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)