查詢R資料框中每一行的非NA值頻率。
為了查詢R資料框中每一行的非NA值頻率,我們可以使用`apply`函式和`na.omit`函式。
例如,如果我們有一個包含一些NA值的資料框`df`,我們可以使用如下命令查詢`df`每一行的非NA值頻率:
apply(df,1, function(x) length(na.omit(x)))
示例1
以下程式碼片段建立一個示例資料框:
x1<-sample(c(NA,2,5),20,replace=TRUE) x2<-sample(c(NA,10,15),20,replace=TRUE) x3<-sample(c(NA,1,3),20,replace=TRUE) df1<-data.frame(x1,x2,x3) df1
建立了以下資料框
x1 x2 x3 1 5 10 3 2 2 10 1 3 2 10 NA 4 2 15 3 5 NA 10 1 6 5 NA NA 7 5 15 NA 8 NA 15 3 9 2 NA NA 10 2 10 NA 11 NA 15 NA 12 5 15 3 13 5 10 3 14 5 NA 3 15 2 NA 1 16 NA 15 NA 17 NA 15 NA 18 2 NA 3 19 2 15 3 20 2 10 NA
為了在上面建立的資料框`df1`中查詢每一行的非NA值頻率,請將以下程式碼新增到上面的程式碼片段:
x1<-sample(c(NA,2,5),20,replace=TRUE) x2<-sample(c(NA,10,15),20,replace=TRUE) x3<-sample(c(NA,1,3),20,replace=TRUE) df1<-data.frame(x1,x2,x3) apply(df1,1, function(x) length(na.omit(x)))
輸出
如果您將以上所有程式碼片段作為一個程式執行,則會生成以下輸出:
[1] 3 3 2 3 2 1 2 2 1 2 1 3 3 2 2 1 1 2 3 2
示例2
以下程式碼片段建立一個示例資料框:
y1<-sample(c(NA,round(rnorm(3),2)),20,replace=TRUE) y2<-sample(c(NA,round(rnorm(3,10,2),2)),20,replace=TRUE) y3<-sample(c(NA,round(rnorm(3,25,3.2),2)),20,replace=TRUE) df2<-data.frame(y1,y2,y3) df2
建立了以下資料框
y1 y2 y3 1 0.27 NA 24.02 2 0.27 9.30 24.02 3 0.49 NA NA 4 NA 8.10 25.60 5 0.49 11.11 29.34 6 -0.16 NA 25.60 7 0.49 9.30 29.34 8 -0.16 8.10 25.60 9 -0.16 11.11 24.02 10 0.49 8.10 29.34 11 NA 11.11 25.60 12 0.27 9.30 29.34 13 -0.16 NA NA 14 0.27 8.10 25.60 15 NA 8.10 29.34 16 0.27 NA NA 17 -0.16 9.30 24.02 18 NA 9.30 NA 19 0.49 11.11 25.60 20 0.49 NA 25.60
為了在上面建立的資料框`df2`中查詢每一行的非NA值頻率,請將以下程式碼新增到上面的程式碼片段:
y1<-sample(c(NA,round(rnorm(3),2)),20,replace=TRUE) y2<-sample(c(NA,round(rnorm(3,10,2),2)),20,replace=TRUE) y3<-sample(c(NA,round(rnorm(3,25,3.2),2)),20,replace=TRUE) df2<-data.frame(y1,y2,y3) apply(df2,1, function(x) length(na.omit(x)))
輸出
如果您將以上所有程式碼片段作為一個程式執行,則會生成以下輸出:
[1] 2 3 1 2 3 2 3 3 3 3 2 3 1 3 2 1 3 1 3 2
示例3
以下程式碼片段建立一個示例資料框:
z1<-sample(c(NA,runif(2,1,5)),20,replace=TRUE) z2<-sample(c(NA,runif(2,5,10)),20,replace=TRUE) z3<-sample(c(NA,runif(3,1,2)),20,replace=TRUE) df3<-data.frame(z1,z2,z3) df3
建立了以下資料框
z1 z2 z3 1 2.237191 NA 1.242077 2 1.137563 8.614818 1.120255 3 NA 9.840686 NA 4 2.237191 9.840686 1.242077 5 1.137563 NA NA 6 NA 9.840686 NA 7 1.137563 NA 1.242077 8 2.237191 9.840686 1.877137 9 1.137563 8.614818 1.120255 10 2.237191 9.840686 NA 11 1.137563 8.614818 1.877137 12 NA 8.614818 1.877137 13 NA NA 1.877137 14 1.137563 8.614818 NA 15 NA 9.840686 1.242077 16 1.137563 9.840686 1.877137 17 2.237191 9.840686 NA 18 1.137563 8.614818 1.242077 19 NA 8.614818 1.120255 20 2.237191 NA 1.242077
為了在上面建立的資料框`df2`中查詢每一行的非NA值頻率,請將以下程式碼新增到上面的程式碼片段:
z1<-sample(c(NA,runif(2,1,5)),20,replace=TRUE) z2<-sample(c(NA,runif(2,5,10)),20,replace=TRUE) z3<-sample(c(NA,runif(3,1,2)),20,replace=TRUE) df3<-data.frame(z1,z2,z3) apply(df3,1, function(x) length(na.omit(x)))
輸出
如果您將以上所有程式碼片段作為一個程式執行,則會生成以下輸出:
[1] 2 3 1 3 1 1 2 3 3 2 3 2 1 2 2 3 2 3 2 2
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP