如果R資料框的一列中存在NA值,如何計算標準差?
如果R資料框的向量或列中存在NA值,則計算標準差的sd命令的結果將為NA。為了解決這個問題,我們需要像處理不包含缺失值的向量一樣,使用na.rm=TRUE。例如,如果我們有一個定義為x的資料框df的列包含缺失值,則x的標準差可以計算為sd(df$x)。
示例
考慮下面的資料框
> set.seed(3521) > x<-c(NA,rnorm(19,5,0.34)) > df1<-data.frame(x) > df1
輸出
x 1 NA 2 5.107864 3 4.797851 4 5.184345 5 4.680958 6 5.245151 7 5.760667 8 4.924365 9 5.770071 10 5.313064 11 4.564939 12 4.139275 13 4.997252 14 4.991125 15 5.402940 16 5.020513 17 4.644727 18 4.766003 19 5.658426 20 4.939198
示例
> sd(df1$x)
輸出
[1] NA
忽略NA值計算x的標準差
示例
> sd(df1$x,na.rm=TRUE)
輸出
[1] 0.4210732
讓我們來看另一個例子
示例
> z<-sample(c(NA,5,8,7,4,1),20,replace=TRUE) > df2<-data.frame(z) > df2
輸出
z 1 NA 2 8 3 4 4 4 5 NA 6 8 7 NA 8 1 9 8 10 8 11 1 12 NA 13 7 14 4 15 1 16 5 17 4 18 5 19 NA 20 7
示例
> sd(df2$z,na.rm=TRUE)
輸出
[1] 2.618615
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP