Zastanawiam się, czy istnieje funkcja wbudowana w R, która oblicza odchylenie standardowe dla kolumn, tak jak colMeans
oblicza mean
dla każdej kolumny. Byłoby dość łatwo napisać własną funkcję mini (złożone polecenie, które wywołuje takie rzeczy, jak apply
z sd
), ale zastanawiałem się, czy było już coś, co mogłem użyć, jednocześnie zachowując mój kod czysty.Standardowe odchylenie kolumny R
Odpowiedz
Ogólna koncepcja to zamiatanie funkcja w poprzek. Masz wiele opcji, jedna jest apply()
:
R> set.seed(42)
R> M <- matrix(rnorm(40),ncol=4)
R> apply(M, 2, sd)
[1] 0.835449 1.630584 1.156058 1.115269
R>
In apply(), drugi argument, margin, "jest wektorem podającym indeksy dolne, do których funkcja zostanie zastosowana." 2 oznacza kolumny – rafaelvalle
Jeśli chcesz używać go z grupy, można użyć:
library(plyr)
mydata<-mtcars
ddply(mydata,.(carb),colwise(sd))
carb mpg cyl disp hp drat wt qsec vs am gear
1 1 6.001349 0.9759001 75.90037 19.78215 0.5548702 0.6214499 0.590867 0.0000000 0.5345225 0.5345225
2 2 5.472152 2.0655911 122.50499 43.96413 0.6782568 0.8269761 1.967069 0.5270463 0.5163978 0.7888106
3 3 1.053565 0.0000000 0.00000 0.00000 0.0000000 0.1835756 0.305505 0.0000000 0.0000000 0.0000000
4 4 3.911081 1.0327956 132.06337 62.94972 0.4575102 1.0536001 1.394937 0.4216370 0.4830459 0.6992059
5 6 NA NA NA NA NA NA NA NA NA NA
6 8 NA NA NA NA NA NA NA NA NA NA
... lub bez grupowania: 'colwise (sd) (mydata)' – flodel
Pakiet fBasics
posiada funkcję colStdevs
require('fBasics')
set.seed(123)
colStdevs(matrix(rnorm(1000, mean=10, sd=1), ncol=5))
[1] 0.9431599 0.9959210 0.9648052 1.0246366 1.0351268
Użyj funkcji colSds
z biblioteki matrixStats
.
library(matrixStats)
set.seed(42)
M <- matrix(rnorm(40),ncol=4)
colSds(M)
[1] 0.8354488 1.6305844 1.1560580 1.1152688
Czy możesz dostosować to 'colSds' dla sum, nie tylko dla średnich? –
- 1. Odchylenie standardowe listy ogólnej?
- 2. Odchylenie standardowe w numpy
- 3. Strumienie Java - odchylenie standardowe
- 4. Jak skutecznie obliczyć ruchome odchylenie standardowe
- 5. Odchylenie standardowe z Apache Commons Math
- 6. Dodaj słupki błędów, aby zobaczyć odchylenie standardowe na działce w R
- 7. Znaleźć średnią i odchylenie standardowe obiektu timedelta w pandach df
- 8. R: standardowe wyjście błędów z lm obiektu
- 9. Przelotowe kolumny w R
- 10. Jak obliczyć średnie i standardowe odchylenie dla wartości odcienia od 0 do 360?
- 11. Przenoszenie wariancji w R
- 12. Podstawy R: tworzenie kolumny ID
- 13. 2 kolumny Przekrój R Markdown
- 14. Java Recursion Trójkąt z Odchylenie
- 15. Jak obliczyć wariancję kolumny rzadkiej macierzy w Scipy?
- 16. Get numer kolumny w R podano nazwę kolumny
- 17. Jak agregować niektóre kolumny, zachowując inne kolumny w R?
- 18. zmutować kolumny po podzestawie według wartości
- 19. Standardowe interfejsy
- 20. Jak zmienić typ kolumny macierzy w R
- 21. zmienić data.frame kolumny na wiersze w R
- 22. R: agregacja z funkcją specyficzną dla kolumny
- 23. Długość kolumny wyłączeniem NA w r
- 24. cofnięcie wyboru kolumny według nazwy, R
- 25. Suma przez odrębną wartość kolumny w R
- 26. dPly: Kolumny zamów alfabetycznie w R
- 27. Ilość Częstotliwość dwie kolumny w R
- 28. R: używając data.table: = operacje obliczyć nowe kolumny
- 29. Przechodząc nazwę kolumny do R tidyr rozprzestrzeniać
- 30. R dostępu do wektora kolumny macierzy nazwy
... tam, chciałbym szczególnie polecić sgibb za 'colSdColMeans' jako szybkiego wdrożenia. – flodel
dla macierzy numerycznej, dość łatwe (rozwiązania poniżej), ale co z rozwiązaniem dla ramki danych działającej tylko w kolumnach numerycznych? Lub używa argumentu formuły, aby wybrać kolumny? 'colmean (~ x1 + x2 + x3, data = d)'? – Spacedman