如何在R中根據向量值對資料框進行子集選擇?
如果我們有一個向量和一個數據框,並且資料框有一列包含與向量中類似的值,那麼我們可以根據該向量建立一個數據框的子集。這可以透過使用單方括號和 %in% 運算子來實現。%in% 運算子將幫助我們找到資料框列中與向量值匹配的值。檢視下面的示例以瞭解其工作原理。
示例1
考慮下面的資料框 df1 和向量 v1:
> x1<-rpois(20,2) > x2<-rnorm(20) > df1<-data.frame(x1,x2) > df1
輸出
x1 x2 1 2 -1.0627997 2 4 -0.2159125 3 1 0.2443734 4 3 -1.3513780 5 3 1.7359994 6 1 1.2563915 7 1 -0.8998470 8 2 0.4187820 9 1 2.6305826 10 4 -0.8040052 11 4 0.4067659 12 3 -1.7879203 13 3 1.7214544 14 2 -0.4699642 15 2 0.3626548 16 4 1.3013632 17 2 -0.2983836 18 1 1.8943313 19 1 1.5637219 20 2 0.8786897
根據向量 v1 中的值對資料框 df1 進行子集選擇:
> df1[df1$x1 %in% v1,]
輸出
x1 x2 1 2 -1.0627997 3 1 0.2443734 4 3 -1.3513780 5 3 1.7359994 6 1 1.2563915 7 1 -0.8998470 8 2 0.4187820 9 1 2.6305826 12 3 -1.7879203 13 3 1.7214544 14 2 -0.4699642 15 2 0.3626548 17 2 -0.2983836 18 1 1.8943313 19 1 1.5637219 20 2 0.8786897
示例2
> y1<-sample(LETTERS[1:5],20,replace=TRUE) > y2<-rpois(20,2) > y3<-rpois(20,5) > df2<-data.frame(y1,y2,y3) > df2
輸出
y1 y2 y3 1 C 0 5 2 A 2 5 3 A 2 1 4 D 1 6 5 B 0 4 6 E 6 9 7 E 0 5 8 C 1 9 9 D 1 6 10 D 2 6 11 A 4 5 12 D 1 6 13 E 1 5 14 E 2 6 15 C 5 4 16 A 0 3 17 D 2 5 18 B 1 10 19 E 3 3 20 A 2 1
根據向量 v2 中的值對資料框 df2 進行子集選擇:
> v2<-c("A","B","C","D")
> df2[df2$y1 %in% v2,]輸出
y1 y2 y3 1 C 0 5 2 A 2 5 3 A 2 1 4 D 1 6 5 B 0 4 8 C 1 9 9 D 1 6 10 D 2 6 11 A 4 5 12 D 1 6 15 C 5 4 16 A 0 3 17 D 2 5 18 B 1 10 20 A 2 1
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP