über zwei Listen kartieren [geschlossen]

Ich habe kürzlich eine Frage zur Verwendung von gestelltapply Funktion über zwei Listen. Jede Liste ist eine Liste von Datenrahmen, die durch Aufteilen eines großen Datenrahmens erstellt wurden. Für jedes Mal, wenn die Funktion ausgeführt wird, möchte ich Vektoren aus dem ersten Element (einem Datenrahmen) übernehmenmylist1 und einige Vektoren aus dem ersten Element (einem Datenrahmen) inmylist2 und regressieren sie gegeneinander. Fahren Sie dann mit dem nächsten fortmylist1 Element undmylist2 Element. Tatsächlich nimmt die Funktion zwei Listen mit der gleichen Anzahl von Elementen und nimmt ein Paar (eine aus jeder Liste) und spielt damit herum.

Ich habe Folgendes versucht, aber die Ergebnisse, die ich erhalte, sind nicht das, was ich will:

a1<-c(1:5,rep(0,5))
a2<-c(1:5,10:6)
b2<-c(rep(100,5),rep(50,5))
z<-c(rep("part1",5),rep("part2",5))
df1<-data.frame(a1,z)
df2<-data.frame(a2,b2,z)

mylist1<-split(df1,z)
mylist2<-split(df2,z)


myfunction<-function(x,y) 
{

meana <- mean(x$a)
meanb <- mean(y$b)
model<-lm((x$a)~(y$a))
return(c(model$coefficients[2],meana=meana,meanb=meanb))
}

result <- mapply(myfunction,x=mylist,y=mylist2)

 #result
#        x   y
#y$a     1  -1
#meana   3   8
#meanb 100  50

Was ich will ist:

#y$a     1   0   
#meana   3   0
#meanb   100 50


#e.g. the results in the first row are from lm((mylist1[[1]][,1])~(mylist2[[1]][,1]))  and lm((mylist1[[2]][,1])~(mylist2[[2]][,1]))  

Antworten auf die Frage(1)

Ihre Antwort auf die Frage