根據條件查詢 R 資料框中的列名和行名。
要根據條件查詢 R 資料框中的列名和行名,我們可以使用 row.names 和 colnames 函式。我們想要查詢行名和列名的條件可以在這些函式內部定義,如下面的示例所示。
示例 1
以下程式碼片段建立一個示例資料框 -
x1<-rpois(20,1) x2<-rpois(20,8) x3<-rpois(20,20) df1<-data.frame(x1,x2,x3) df1
建立了以下資料框
x1 x2 x3 1 1 11 15 2 3 6 15 3 0 9 18 4 2 10 26 5 1 9 17 6 1 7 23 7 0 11 21 8 2 11 23 9 1 6 22 10 2 6 28 11 2 7 22 12 0 8 16 13 1 7 28 14 1 7 25 15 0 6 14 16 0 10 23 17 0 12 16 18 0 8 23 19 2 8 17 20 2 8 21
要在上面建立的資料框中查詢哪一行包含值為 17 的值,請將以下程式碼新增到上述程式碼片段中 -
x1<-rpois(20,1) x2<-rpois(20,8) x3<-rpois(20,20) df1<-data.frame(x1,x2,x3) row.names(df1[which(df1==17,arr.ind=T)[,1],] )
輸出
如果您將上面給出的所有程式碼片段作為單個程式執行,它將生成以下輸出 -
[1] "5" "19"
要在上面建立的資料框中查詢哪一列包含值為 17 的值,請將以下程式碼新增到上述程式碼片段中 -
x1<-rpois(20,1) x2<-rpois(20,8) x3<-rpois(20,20) df1<-data.frame(x1,x2,x3) colnames(df1)[apply(df1, 2, function(x) any(x==17))]
輸出
如果您將上面給出的所有程式碼片段作為單個程式執行,它將生成以下輸出 -
[1] "x3"
示例 2
以下程式碼片段建立一個示例資料框 -
y1<-sample(1:100,20) y2<-sample(1:100,20) y3<-sample(1:100,20) df2<-data.frame(y1,y2,y3) df2
建立了以下資料框
y1 y2 y3 1 75 52 32 2 37 5 46 3 43 31 60 4 100 30 11 5 28 18 79 6 31 80 53 7 8 85 49 8 62 38 56 9 48 82 15 10 97 48 69 11 69 25 40 12 12 92 21 13 77 55 26 14 39 95 63 15 82 61 75 16 98 40 14 17 61 78 22 18 93 63 58 19 10 21 17 20 2 68 83
要在上面建立的資料框中查詢哪一行包含值為 92 的值,請將以下程式碼新增到上述程式碼片段中 -
y1<-sample(1:100,20) y2<-sample(1:100,20) y3<-sample(1:100,20) df2<-data.frame(y1,y2,y3) row.names(df2[which(df2==92,arr.ind=T)[,1],] )
輸出
如果您將上面給出的所有程式碼片段作為單個程式執行,它將生成以下輸出 -
[1] "12"
要在上面建立的資料框中查詢哪一列包含值為 92 的值,請將以下程式碼新增到上述程式碼片段中 -
y1<-sample(1:100,20) y2<-sample(1:100,20) y3<-sample(1:100,20) df2<-data.frame(y1,y2,y3) colnames(df2)[apply(df2, 2, function(x) any(x==92))]
輸出
如果您將上面給出的所有程式碼片段作為單個程式執行,它將生成以下輸出 -
[1] "y2"
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP