używać następujące data.frame jako przykład:kruszywa na.action = na.pass zapewnia niespodziewaną odpowiedź
d <- data.frame(x=c(1,NA), y=c(2,3))
chciałbym sumowania wartości Y od zmiennej x. Ponieważ nie ma wspólnej wartości x, spodziewałbym się, że agregacja po prostu da mi oryginalną kopię danych.frame, gdzie NA jest traktowana jako grupa. Ale agregacja daje mi następujące wyniki.
>aggregate(y ~ x, data=d, FUN=sum)
x y
1 1 2
Czytałem dokumentację dotyczącą zmiany domyślnych działań na.action, ale nie wydaje mi się, aby dało mi coś znaczącego.
>aggregate(y ~ x, data=d, FUN=sum, na.action=na.pass)
x y
1 1 2
Co się dzieje? Wydaje mi się, że nie rozumiem, co robi na tym przypadku na.pass. Czy istnieje opcja, aby osiągnąć to, co chcę w R? Każda pomoc będzie bardzo ceniona.
Mówisz, że rozważasz wartość 'NA' jako zmienną grupującą? Czy chcesz "NA", czy nie? (Nie jest to jasne, ponieważ używasz 'na.rm = TRUE' jako części twojego testowania ... – A5C1D2H2I1M1N2O1R2T1
Tak, chcę NA jako grupę – Sanias
Dokumentacja mówi" Wiersze z brakującymi wartościami w dowolnym z nich zmienne zostaną pominięte w wyniku. "Jeśli nie chcesz tego, musisz przekodować zmienną' by' lub użyć innej funkcji agregacji .. – Roland