如何在R語言中根據列中的空值刪除資料框的行?
有時資料會錯誤地輸入系統,這就是為什麼在進行資料分析之前必須仔細進行資料清洗的原因。如果資料收集者或樣本單元找不到合適的問題選項,則可能會輸入空格作為答案。如果問卷設計不當或錯誤地填寫空格,也會發生這種情況。此外,如果我們有分類變數,則控制類別可能會用空格填充,或者我們可能希望保留一個空格類別以供以後使用新的類別。無論原因是什麼,分析師都會面臨此類問題。這些空格實際上是透過在計算機上使用空格鍵插入的。因此,如果資料框的任何列包含空值,則可以使用單方括號的子集刪除這些行。
示例1
考慮以下資料框
> set.seed(24)
> x1<-sample(c(" ",1:5),20,replace=TRUE)
> x2<-rnorm(20,4,1.25)
> df1<-data.frame(x1,x2)
> df1輸出
x1 x2 1 2 3.413674 2 1 3.581267 3 2 5.920315 4 4 4.762493 5 1 4.645420 6 5 3.907114 7 1 3.243554 8 1.862944 9 3 3.664134 10 3.189261 11 3.882362 12 4 3.893074 13 4 4.149414 14 3.854630 15 4 2.820216 16 4 3.957828 17 3 3.268216 18 4 4.766064 19 1 5.896403 20 4.821726
刪除包含空值的行
示例
> df1[!df1$x1==" ",]
輸出
x1 x2 1 2 3.413674 2 1 3.581267 3 2 5.920315 4 4 4.762493 5 1 4.645420 6 5 3.907114 7 1 3.243554 9 3 3.664134 12 4 3.893074 13 4 4.149414 15 4 2.820216 16 4 3.957828 17 3 3.268216 18 4 4.766064 19 1 5.896403
示例2
> y1<-sample(c(" ",rpois(5,1)),20,replace=TRUE)
> y2<-rpois(20,5)
> df2<-data.frame(y1,y2)
> df2輸出
y1 y2 1 1 2 2 0 4 3 3 4 10 5 0 6 6 0 5 7 0 7 8 0 3 9 1 1 10 1 6 11 2 7 12 2 5 13 0 5 14 3 15 0 5 16 0 3 17 1 4 18 0 4 19 2 2 20 14
刪除包含空值的行
示例
> df2[!df2$y1==" ",]
輸出
y1 y2 1 1 2 2 0 4 5 0 6 6 0 5 7 0 7 8 0 3 9 1 1 10 1 6 11 2 7 12 2 5 13 0 5 15 0 5 16 0 3 17 1 4 18 0 4 19 2 2
廣告
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP