簡體   English   中英

根據R中的兩個條件和一個類別過濾

[英]Filter according to two conditions and a category in R

我打算做的是從數據庫中,根據兩個條件過濾行,然后提取具有相同類別的另一行。

我給你看我的數據庫。

    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。 但是不僅得到它的行,即使不滿足前面的條件,也得到同類別的行。

也就是說,我希望它返回這個:

在此處輸入圖像描述

你能幫我嗎?

一種方法是在過濾后與自身進行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

幾個選項:

基地 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()

暫無
暫無

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

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