首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何知道它是否可以在另一列的列中找到值?

如何知道它是否可以在另一列的列中找到值?
EN

Stack Overflow用户
提问于 2022-07-11 16:53:46
回答 2查看 42关注 0票数 1

我有两个大型数据库,但我想知道它已经在另一个数据库中的数据有多少,这些值在行中是随机的,所以我需要一个过滤器,使indícates df2 1$列中的值在df2 2$列中。

例如,让我们把这看作向量。我有两个向量

代码语言:javascript
运行
复制
a=c("q","w","e","r","t","y","u","i","o")
b=c("o","u","y","t","r","e","w","q","a")

例如,我想要一个输出,它表示来自b的输出不在a中。

代码语言:javascript
运行
复制
>"i"

希望这可以理解

EN

回答 2

Stack Overflow用户

发布于 2022-07-11 17:10:57

更新:更新问题后的

现在函数更短了!:-)

代码语言:javascript
运行
复制
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))相同,但是有点笨重。总之,为了训练函数式编程,我们可以:

代码语言:javascript
运行
复制
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)
代码语言:javascript
运行
复制
[1] "a" "i"
票数 1
EN

Stack Overflow用户

发布于 2022-07-11 17:20:10

我们可能不想忘记:a[!(a %in% b)]

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72942037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档