簡體   English   中英

如何從基於另一個數據框 R (dplyr) 的一個數據框中選擇行

[英]how to select rows from one data frame based in other data frame R (dplyr)

我有兩個數據框: df1df2

ID <- c('PD1', 'PD1', 'PD2', 'PD2')
run <- c('A1', 'A4', 'A6', 'A7')
df <- data.frame(ID=ID, run =run)

name <- c('n1', 'n1', 'n1','n1', 'n1', 'n1')
run <- c('A1', 'A2', 'A3', 'A4', 'A5', 'A6')
value <- c(4.5, 6.7, 0.9, 8.2, 5.7, 9.4)
df2 <- data.frame(name =name, run=run, value = value)

我想根據 df1 中的值對我的 df2 進行子集化以獲得此結果

name run  value
n1  A1   4.5
n1  A4   8.2
n1  A6   9.4

我試過這個

NewDataframe <- merge(df2, df1 , by= 'run',all.x=FALSE)

哪個有效,但我只有一個將列保留在df2

有什么建議嗎? 謝謝

嘗試這個:

library(dplyr)

df2 %>% 
  filter(run %in% df$run)

結果

  name run value
1   n1  A1   4.5
2   n1  A4   8.2
3   n1  A6   9.4

base R您可以像這樣子集:

df2[which(df2$run %in% df$run),]
  name run value
1   n1  A1   4.5
4   n1  A4   8.2
6   n1  A6   9.4

dplyr您可以使用left_join

left_join(df, df2, by = "run") %>% na.omit(.)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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