查詢R資料框中每個分組的非缺失值個數。
為了查詢R資料框中每個分組的非缺失值個數,我們可以將資料框轉換為data.table物件,然後使用sum函式結合is.na的否定。
例如,如果我們有一個名為df的資料框,其中包含一個分組列(例如Group)和一個包含一些NA值的數值列(例如Num),那麼我們可以使用以下命令查詢每個Group中非缺失值的個數:
setDT(df)[,sum(!is.na(df)),by=.(Group)]
示例1
以下程式碼片段建立了一個示例資料框:
Grp<-sample(LETTERS[1:3],20,replace=TRUE) Dep_Var<-sample(c(NA,round(rnorm(2),2),20,replace=TRUE)) df1<-data.frame(Grp,Dep_Var) df1
建立了以下資料框
Grp Dep_Var 1 B NA 2 A 1.00 3 A 20.00 4 B -0.63 5 B -1.48 6 B NA 7 A 1.00 8 C 20.00 9 A -0.63 10 A -1.48 11 C NA 12 C 1.00 13 B 20.00 14 C -0.63 15 B -1.48 16 A NA 17 C 1.00 18 B 20.00 19 A -0.63 20 B -1.48
要載入data.table物件並在上面建立的資料框中查詢每個Grp的非缺失值個數,請將以下程式碼新增到上述程式碼片段中:
Grp<-sample(LETTERS[1:3],20,replace=TRUE) Dep_Var<-sample(c(NA,round(rnorm(2),2),20,replace=TRUE)) df1<-data.frame(Grp,Dep_Var) library(data.table) setDT(df1)[,sum(!is.na(Dep_Var)),by=.(Grp)]
輸出
如果您將上述所有程式碼片段作為一個程式執行,它將生成以下輸出:
Grp V1 1: B 6 2: A 6 3: C 4
示例2
以下程式碼片段建立了一個示例資料框:
Category<-sample(c("Low","Medium","High"),20,replace=TRUE)
Val<-sample(c(NA,rpois(2,5),20,replace=TRUE))
df2<-data.frame(Category,Val)
df2建立了以下資料框
Category Val 1 Medium 20 2 High 1 3 High 8 4 High 5 5 High NA 6 Medium 20 7 High 1 8 Low 8 9 Low 5 10 Medium NA 11 Medium 20 12 Medium 1 13 Medium 8 14 Medium 5 15 Medium NA 16 High 20 17 Medium 1 18 Medium 8 19 Low 5 20 Low NA
要在上面建立的資料框中查詢每個Category的非缺失值個數,請將以下程式碼新增到上述程式碼片段中:
Category<-sample(c("Low","Medium","High"),20,replace=TRUE)
Val<-sample(c(NA,rpois(2,5),20,replace=TRUE))
df2<-data.frame(Category,Val)
setDT(df2)[,sum(!is.na(Val)),by=.(Category)]輸出
如果您將上述所有程式碼片段作為一個程式執行,它將生成以下輸出:
Category V1 1: Medium 8 2: High 5 3: Low 3
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP