Tak więc, ma ramkę danych z dwóch elementów i jedną zmienną numerycznej tak:Obsługa brakujących kombinacje czynników R
>D
f1 f2 v1
1 A 23
2 A 45
2 B 27
.
.
.
więc poziom f1 oznaczają 1 i 2, a także poziomy f2 są A i B. Tutaj jest rzecz, nie ma wartości wprowadzonej dla kiedy f1 = 1 i f2 = B (to jest D $ V1 [D $ f1 = 1 & D $ f2 = B] nie ma) w rzeczywistości powinno to być zero.
W mojej aktualnej ramce danych mam 11 poziomów f1 i blisko 150 poziomów f2 i muszę utworzyć obserwację z v1 = 0 dla każdej kombinacji f1 i f2, której brakuje w mojej ramce danych.
Jak miałbym to zrobić?
Dzięki z góry,
Ian
@ user1443010 w tej linii, używam go, aby uniknąć 'dat $ f1' i' dat $ f2'. Myślę też, że to czyni zamiar jasnym; używając * tego * obiektu, wykonaj * to *. Nie ma nic złego w tym na poziomie użytkownika, ale istnieje kara za wydajność, ponieważ R musi stworzyć nowe środowisko z zawartością obiektu, a to wymaga czasu. 'dat2 <- expand.grid (f1 = poziomy (dat $ f1), f2 = poziomy (dat $ f2)) byłyby alternatywą. Nie zawsze można pracować z '' z() '; Nie sądzę, aby linia zastępująca "NA" mogła zostać łatwo przekształcona w 'with()', ale może mi brakować czegoś. –
niesamowite! dzięki! ;) – maycca