我有两个大型数据库,但我想知道它已经在另一个数据库中的数据有多少,这些值在行中是随机的,所以我需要一个过滤器,使indícates df2 1$列中的值在df2 2$列中。
例如,让我们把这看作向量。我有两个向量
a=c("q","w","e","r","t","y","u","i","o")
b=c("o","u","y","t","r","e","w","q","a")
例如,我想要一个输出,它表示来自b的输出不在a中。
>"i"
希望这可以理解
发布于 2022-07-11 17:10:57
更新:更新问题后的:
现在函数更短了!:-)
library(dplyr)
my_function <- function(a, b){
from_a_not_in_b <- anti_join(data.frame(a), data.frame(b), by= c("a"="b")) %>%
pull(a)
return(from_a_not_in_b)
}
my_function(a,b)
[1] "i"
的第一个答案是:这个自定义函数的功能与@akrun的c( setdiff(b, a), setdiff(a,b))
相同,但是有点笨重。总之,为了训练函数式编程,我们可以:
library(dplyr)
my_function <- function(a, b){
from_b_not_in_a <- anti_join(data.frame(b), data.frame(a), by= c("b"="a")) %>%
pull(b)
from_a_not_in_b <- anti_join(data.frame(a), data.frame(b), by= c("a"="b")) %>%
pull(a)
c( from_b_not_in_a, from_a_not_in_b)
}
my_function(a,b)
[1] "a" "i"
发布于 2022-07-11 17:20:10
我们可能不想忘记:a[!(a %in% b)]
https://stackoverflow.com/questions/72942037
复制相似问题