我打算做的是從資料庫中,根據兩個條件過濾行,然后提取具有相同類別的另一行。
我給你看我的資料庫。
dat <- read.table(text="
Category Score Index Document
Pepe 5 Al a
Pepe 1 Bl b
Juan 8 Cl a
Juan 5 Al b
Mikel 1 Cl a
Mikel 6 Bl b
", header=TRUE
我的意圖是獲得滿足兩個條件的行。索引 = Bl 和檔案 = b。但是不僅獲取它的行,而且即使不滿足前面的條件,也獲取相同類別的行。
也就是說,我希望它回傳這個:

你能幫我嗎?
uj5u.com熱心網友回復:
幾個選項:
基數 R -
subset(dat, Category %in% Category[Index == "Bl" & Document == "b"])
# Category Score Index Document
#1 Pepe 5 Al a
#2 Pepe 1 Bl b
#5 Mikel 1 Cl a
#6 Mikel 6 Bl b
dplyr-
library(dplyr)
dat %>%
group_by(Category) %>%
filter(any(Index == "Bl" & Document == "b")) %>%
ungroup()
uj5u.com熱心網友回復:
一種方法是left_join在過濾后使用自身。
library(dplyr)
dat |>
filter(Index == "Bl", Document == "b") |>
select(Category) |>
left_join(dat)
Joining, by = "Category"
Category Score Index Document
1 Pepe 5 Al a
2 Pepe 1 Bl b
3 Mikel 1 Cl a
4 Mikel 6 Bl b
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/441430.html
