Poniżej znajdują się 4 zestawy danych (właśnie je utworzono losowo w celu zapewnienia odtwarzalnego kodu). Stworzyłem listę tych więc mogę zastosować „LM” do tych wielu zestawów danych na raz.stosowanie lm do wielu zestawów danych
H<-data.frame(replicate(10,sample(0:20,10,rep=TRUE)))
C<-data.frame(replicate(5,sample(0:100,10,rep=FALSE)))
R<-data.frame(replicate(7,sample(0:30,10,rep=TRUE)))
E<-data.frame(replicate(4,sample(0:40,10,rep=FALSE)))
dsets<-list(H,C,R,E)
models<-lapply(dsets,function(x)lm(X1~.,data=x))
lapply(models,summary)
zmiennych w każdym z zestawów danych są różne (w liczbie, jak również nazw Jeśli jednak uruchomić kod będą wszystkie x1, x2.. i tak dalej). Pierwsza kolumna/zmienna w każdej będzie odpowiedzią, a resztą będą zmienne niezależne.
Ten kod działa, ale nie w moim rzeczywistym zestawie danych. Ponieważ moje zestawy danych mają rzeczywiste nazwy zmiennych, użyłem pozycji zmiennej, jak poniżej:
dsets<-list(H,C,R,E)
models<lapply(dsets,function(x)lm(x[,1]~.,data=x))
lapply(models,summary)
Powyższe wyniki są pomieszane. Obejmuje również zmienną odpowiedzi jako zmienną niezależną.
Czy ktoś może pomóc?
EDIT: zdałem sobie sprawę, że x [1] dzwoni całą kolumnę, a nie nazwę kolumny
models<lapply(dsets,function(x)lm(colnames(x)[1]~.,data=x))
lapply(models,summary)
ale to nie działa albo. I pojawia się następujący błąd
Error in model.frame.default(formula = colnames(H[1]) ~ ., data = H, drop.unused.levels = TRUE) :
variable lengths differ (found for 'Var1')
Awsome! to działało dobrze. Ale czy mógłbyś mi powiedzieć, co było nie tak z moim kodem? i co to znaczy termlabels = "." robi? – oivemaria
OK, wygląda jak termlabels = "." mówi tylko użycie wszystkich zmiennych w zestawie danych – oivemaria
@ Yivemaria Yup masz to! – stanekam