簡體   English   中英

2個變量與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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM