r - 如何将字符向量与 R 中 tibble 中的字符向量列表进行匹配?

标签 r dplyr tidyverse purrr

我想将 tibble 中的 A 列与 B 列进行比较,以查看 A 列中的元素是否存在于 B 列中。A 列是字符向量。 B 列是字符向量列表。我想逐行执行此操作。我可以用循环来做到这一点。

library(tidyverse)

my.tibble = c('a','b','c') %>% tibble
my.list = list(c('a','b'),c('b','c'),c('d','e'))
my.tibble = my.tibble %>% add_column(my.list)

its.in.it = as.list(NULL)
for (i in 1:nrow(my.tibble)){
    its.in.it[[i]] = my.tibble[i,1] %in% unlist(my.tibble[i,2])
}

my.tibble$its.in.it = unlist(its.in.it)
my.tibble

我正在尝试使用 dplyr/purrr 或 apply 来执行此操作。我不确定是否应该分组、嵌套或拆分,并且有很多组合。

最佳答案

您可以使用map2_lgl,它接受两个输入,循环它们并返回一个逻辑向量。

names(my.tibble) <- c("char", "char.list")
my.tibble %>% 
  mutate(its.in.it = map2_lgl(char, char.list, ~ .x %in% .y))

# A tibble: 3 x 3
#   char  char.list its.in.it
#   <chr> <list>    <lgl>    
# 1 a     <chr [2]> TRUE     
# 2 b     <chr [2]> TRUE     
# 3 c     <chr [2]> FALSE  

关于r - 如何将字符向量与 R 中 tibble 中的字符向量列表进行匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53176660/

相关文章:

python - 如何在 RPy 中使用 smooth.spline 的 lambda 参数而无需 Python 将其解释为 lambda

r - 如何安装/定位 R.h 和 Rmath.h 头文件?

r - 使用 R 对随机生成的横断面进行有效排序

r - 使用循环时的 tbl_df 和 data.frame 差异

通过 R 中的查找表重命名变量

r - 使用朝阳 View 绘制 rpart 决策树模型

r - 如何在ggplot中的AES中使用特殊运算符(..count ..等)使用早期声明的变量

r - 如何对动态、不断发展的数据框中的列进行求和?

r - R 中作为数据框的分类变量频率表

r - 给定列的最小值,在另一列中找到最小值(dplyr)