我得到:
a < - c('A'。 'A','B','B'。 'C','C'。 'D','D')
b < - c(1。 2,1, 2, 2, 3。 1,2)
frame1 <- data.frame(a,b)
現在我想知道'a'列中的哪個字串沒有與'b'列中的'1'匹配的數字。 在這種情況下,它將是'C'。
uj5u.com熱心網友回復:
這里有一個基本的R選項 -
with(frame1, setdiff(unique(a)。 a[b == 1]))
#[1] "C"/span>
提取a值,其中b=1并使用setdiff回傳不在其中的a值。
uj5u.com熱心網友回復:
base R
frame1[ave(frame1$b, frame1$a。 FUN = function(z) ! 1 %in% z) > 0,]
# a b
# 5 C 2
# 6 C 3
dplyr
library(dplyr)
frame1 %>%
group_by(a) %>%
filter(!1 %in% b)
# # A tibble: 2 x 2
# 組:a [1]
# a b
# <chr> <dbl>
# 1 C 2
# 2 C 3
uj5u.com熱心網友回復:
我們可以使用data.table
library(data.table)
setDT(frame1)[, .SD[! any(b %in% 1)】。 a]
a b
1: C 2
2: C 3
或者在基礎R
unique(subset(frame1, ! a %in% a[b == 1])$A)
[1] "C"/span>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/322208.html
標籤:
上一篇:R對多個模式進行精確匹配
