在 R 中透過匹配向量提取資料框列值作為向量。
為了在 R 中透過匹配向量提取資料框列值作為向量,我們可以使用帶有 %in% 運算子的子集。
例如,如果我們有一個名為 df 的資料框,它有一個名為 C 的列和一個向量 V,並且我們希望在 C 中提取與 V 匹配的值,那麼我們可以使用以下命令:
df[df$C %in% V,"C"]
示例 1
以下程式碼片段建立了一個示例資料框和向量:
x1<-rpois(20,5) x2<-rpois(20,2) x3<-rpois(20,1) df1<-data.frame(x1,x2,x3) df1
建立了以下資料框
x1 x2 x3 1 2 4 3 2 7 1 3 3 3 0 2 4 3 1 1 5 3 1 1 6 2 0 1 7 2 3 0 8 5 4 0 9 7 3 3 10 6 1 1 11 11 1 0 12 4 1 2 13 1 1 1 14 2 2 1 15 6 1 2 16 3 5 1 17 3 0 2 18 4 1 3 19 7 3 3 20 5 0 0
為了在上面建立的資料框中提取與 V1 中的值匹配的 x3 列中的值,請將以下程式碼新增到上述程式碼片段中:
x1<-rpois(20,5) x2<-rpois(20,2) x3<-rpois(20,1) df1<-data.frame(x1,x2,x3) df1[df1$x3 %in% V1,"x3"] V1<-c(0,1)
輸出
如果您將所有上述程式碼片段作為單個程式執行,它將生成以下輸出:
[1] 1 1 1 0 0 1 0 1 1 1 0
示例 2
以下程式碼片段建立了一個示例資料框和向量:
y1<-sample(1:100,20) y2<-sample(1:100,20) df2<-data.frame(y1,y2) df2
建立了以下資料框
y1 y2 1 3 93 2 37 64 3 73 84 4 43 46 5 51 91 6 99 7 7 38 71 8 78 82 9 93 73 10 20 8 11 63 58 12 1 50 13 60 40 14 46 33 15 58 97 16 41 3 17 44 77 18 68 51 19 42 75 20 94 11
為了在上面建立的資料框中提取與 V2 中的值匹配的 y2 列中的值,請將以下程式碼新增到上述程式碼片段中:
y1<-sample(1:100,20) y2<-sample(1:100,20) df2<-data.frame(y1,y2) df2[df2$y2 %in% V2,"y2"] V2<-c(5,10,15,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95)
輸出
如果您將所有上述程式碼片段作為單個程式執行,它將生成以下輸出:
[1] 50 40 75
示例 3
以下程式碼片段建立了一個示例資料框和向量:
z1<-round(rnorm(20),0) z2<-round(rnorm(20),0) z3<-round(rnorm(20),0) df3<-data.frame(z1,z2,z3) df3
建立了以下資料框
z1 z2 z3 1 -1 0 0 2 0 -2 0 3 0 0 1 4 0 -1 -1 5 0 0 1 6 -1 -1 0 7 1 -1 0 8 0 0 -1 9 0 -1 -2 10 0 1 2 11 1 0 0 12 0 0 1 13 -1 0 -1 14 -1 -1 0 15 -3 0 0 16 -1 0 1 17 0 0 1 18 -1 1 -1 19 0 0 0 20 -1 1 -2
為了在上面建立的資料框中提取與 V3 中的值匹配的 z1 列中的值,請將以下程式碼新增到上述程式碼片段中:
z1<-round(rnorm(20),0) z2<-round(rnorm(20),0) z3<-round(rnorm(20),0) df3<-data.frame(z1,z2,z3) df3[df3$z1 %in% V3,"z1"] V3<-c(0,1)
輸出
如果您將所有上述程式碼片段作為單個程式執行,它將生成以下輸出:
[1] 0 0 0 0 1 0 0 0 1 0 0 0
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP