[英]Match/subset one dataframe based on conditional values in another dataframe in R
[英]Subset of dataframe for which 2 variables match another dataframe in R
我正在尋找通過選擇在前兩個變量中包含特定組合的行來獲得我的第一個較大的數據框'df1'的子集,如較小的'df2'中所指定。 例如:
df1 <- data.frame(ID = c("A", "A", "A", "B", "B", "B"),
day = c(1, 2, 2, 1, 2, 3), value = seq(4,9))
df1 # my actual df has 20 varables
ID day value
A 1 4
A 2 5
A 2 6
B 1 7
B 2 8
B 3 9
df2 <- data.frame(ID = c("A", "B"), day = c(2, 1))
df2 # this df remains at 2 variables
ID day
A 2
B 1
輸出將是:
ID day value
A 2 5
A 2 6
B 1 7
任何幫助將不勝感激,謝謝!
這是merge
功能的好用法。
df1 <- data.frame(ID = c("A", "A", "A", "B", "B", "B"),
day = c(1, 2, 2, 1, 2, 3), value = seq(4,9))
df2 <- data.frame(ID = c("A", "B"), day = c(2, 1))
merge(df1,
df2,
by = c("ID", "day"))
給出輸出:
ID day value
1 A 2 5
2 A 2 6
3 B 1 7
這是dplyr
解決方案:
library("dplyr")
semi_join(df1, df2, by = c("ID", "day"))
# ID day value
# 1 A 2 5
# 2 A 2 6
# 3 B 1 7
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.