Po uruchomieniu m1 <- lm(f1, data=DT)
chcę zapisać obserwacje, które są zawarte (w rodzaju "obs < - complete.cases (m1)", ale coś, co działa), więc że mogę uruchomić drugą regresję na tych samych obserwacjach: m2 <- lm(f2, data=DT[obs])
.R: Wyodrębnij pełne przypadki/uwzględnione obserwacje z modelu liniowego lub zmiennych formuły
Alternatywnie, chciałbym uzyskać obserwacje, które są kompletne dla danego zbioru zmiennych zdefiniowanego przez obiekt formuły. Rozważmy ten pseudokod podobny do R:
f1 <- as.formula("y ~ x1 + x2 + x3")
f2 <- as.formula("y ~ x1 + x2")
obs <- complete.cases(DT[,list(all.vars(f1)])
m2 <- lm(f2, data=DT[obs])
Jak to zrobić? W pierwszym przypadku, lm
już wykonuje pracę pośrednio; jak mogę to wydobyć? W drugim, all.vars
zwraca wektor znaków; w jaki sposób poprawnie utworzyć niecytowaną listę, którą zrozumie DT (data.table)?
'obs <- complete.cases (DT [C (all.vars (F1)), z = FAŁSZ])' –
ten odpowiedzi na pytanie. Nawiasem mówiąc, 'obs <- complete.cases (DT [, all.vars (f1), with = FALSE]) również działa, ponieważ' all.vars' zwraca wektor znaków. Spróbowałem flagi 'with' (' list (f1), with = TRUE'), ale to nie działa. – rjturn
Ponieważ 'list' wykonuje niestandardową ocenę w środowisku' data.table', co oznacza, że otrzymuje niecytowane nazwy zmiennych. –