如何在R中根據另一個數據框的列值提取資料框的列值?
在資料分析中,我們遇到許多問題,其中差異很大。其中一個問題是,我們有一些資訊需要在一個地方檢查,而這些地方可能是資料框。因此,我們需要根據另一個數據框的列值來查詢資料框的列值。在 R 中,我們可以藉助哪個函式輕鬆實現?
示例
考慮以下資料框:
set.seed(12121) x1<−sample(0:2,20,replace=TRUE) y1<−sample(0:5,20,replace=TRUE) df1<−data.frame(x1,y1) df1
輸出
x1 y1 1 0 3 2 2 2 3 0 2 4 1 4 5 0 4 6 2 0 7 0 3 8 0 1 9 2 5 10 1 0 11 0 1 12 1 1 13 0 3 14 0 0 15 2 0 16 1 5 17 0 2 18 2 0 19 1 4 20 0 5
示例
x2<−sample(1:2,20,replace=TRUE) y2<−sample(1:5,20,replace=TRUE) df2<−data.frame(x2,y2) df2
輸出
x2 y2 1 1 2 2 1 2 3 1 2 4 2 4 5 2 3 6 1 4 7 2 1 8 2 3 9 1 2 10 1 5 11 1 2 12 2 2 13 2 1 14 2 5 15 1 2 16 1 3 17 2 2 18 2 1 19 1 1 20 1 3
查詢 df1 中 x1 中存在於 df2 中 x2 的值:
df1[which(df1$x1 %in% df2$x2), "x1"] [1] 2 1 2 2 1 1 2 1 2 1
查詢 df1 中 y1 中存在於 df2 中 y2 的值:
df1[which(df1$y1 %in% df2$y2), "y1"] [1] 3 2 2 4 4 3 1 5 1 1 3 5 2 4 5
讓我們看另一個例子:
x3<−sample(21:25,20,replace=TRUE) y3<−sample(26:50,20) df3<−data.frame(x3,y3) df3
輸出
x3 y3 1 21 39 2 24 36 3 24 31 4 22 46 5 25 27 6 24 29 7 24 30 8 23 26 9 24 45 10 22 37 11 23 35 12 23 43 13 22 38 14 22 32 15 25 49 16 23 44 17 24 34 18 21 40 19 21 47 20 25 42
示例
x4<−sample(24:25,20,replace=TRUE) y4<−sample(41:50,20,replace=TRUE) df4<−data.frame(x4,y4) df4
輸出
x4 y4 1 25 50 2 24 44 3 24 45 4 25 49 5 24 42 6 25 48 7 25 43 8 25 47 9 24 50 10 25 41 11 25 47 12 25 50 13 24 46 14 25 50 15 24 42 16 24 42 17 24 50 18 25 47 19 25 42 20 25 41 df3[which(df3$x3 %in% df4$x4), "x3"] [1] 24 24 25 24 24 24 25 24 25 df3[which(df3$y3 %in% df4$y4), "y3"] [1] 46 45 43 49 44 47 42
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP