如何在R中基於條件查詢所有列的頻率?
為了找到基於條件的所有列的條件頻率,我們可以使用for迴圈,在迴圈中我們將定義每個列的長度以及我們想要查詢頻率的條件。
例如,如果我們有一個名為df的資料框,並且我們想要查詢每列中大於5的值的數量,那麼我們可以使用下面給出的命令:
Columns <- vector()
for(i in 1:ncol(df1)){
Columns[i]<-length(df1[df1[,i] >5 ,i])
}
Columns示例1
下面的程式碼片段建立一個示例資料框:
x1<-rpois(20,1) x2<-rpois(20,2) x3<-rpois(20,3) df1<-data.frame(x1,x2,x3) df1
建立瞭如下資料框:
x1 x2 x3 1 1 1 1 2 0 1 3 3 1 3 3 4 2 4 2 5 1 2 1 6 0 7 0 7 1 1 2 8 2 1 3 9 0 6 1 10 0 5 3 11 2 1 4 12 2 2 10 13 1 1 4 14 1 2 3 15 0 2 2 16 0 2 3 17 0 1 3 18 0 4 4 19 0 4 6 20 3 1 3
為了查詢df1中每列的頻率(如果列值大於2),請將以下程式碼新增到上面的程式碼片段中:
Columns1 <- vector()
for(i in 1:ncol(df1)){
+ Columns1[i]<-length(df1[df1[,i] >2 ,i])
+ }
Columns1輸出
如果您將以上所有程式碼片段作為單個程式執行,則會生成以下輸出:
[1] 1 7 13
示例2
下面的程式碼片段建立一個示例資料框:
y1<-rnorm(20) y2<-rnorm(20) y3<-rnorm(20) df2<-data.frame(y1,y2,y3) df2
建立瞭如下資料框:
y1 y2 y3 1 -0.7446072 0.2772768 -0.2099932 2 0.4497256 -1.5064792 -0.7166337 3 0.8316262 -1.0904581 0.5837854 4 -0.2955840 1.8329734 1.9440828 5 1.4989187 0.7655811 -1.7222717 6 1.6513081 -1.4800745 0.9092251 7 0.7703807 -1.3972957 -0.6070779 8 0.8522162 -0.3482059 -0.7727520 9 -0.8581488 1.6068537 -2.3097855 10 -0.6890322 1.8891767 -1.3816252 11 -0.2896339 1.9209137 0.5935030 12 -0.9241086 -2.0833818 0.7365296 13 -1.1093938 1.4950127 1.5394590 14 -0.1203023 -0.7265817 -0.1850344 15 -0.1747876 -0.3429473 0.9155441 16 0.2678002 -0.4080068 -0.5372238 17 0.1292888 0.8621264 -1.0343519 18 1.0656223 0.3492514 -1.8643609 19 -1.0106256 0.3237296 -0.3930171 20 0.7498458 -0.1454423 -1.2903053
為了查詢df2中每列的頻率(如果列值大於5),請將以下程式碼新增到上面的程式碼片段中:
Columns2<-vector()
for(i in 1:ncol(df2)){
+ Columns2[i] <- length(df2[df2[,i]>0.5 ,i])
+ }
Columns2輸出
如果您將以上所有程式碼片段作為單個程式執行,則會生成以下輸出:
[1] 7 7 7
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP