R 如何访问数据帧中的多元素(列表)

R 如何访问数据帧中的多元素(列表),r,dplyr,tidyverse,purrr,R,Dplyr,Tidyverse,Purrr,我有一个示例数据帧,如下所示 公关部 产品 名称 id_234 洋葱,豆子 克里斯 id_34d 苹果 汤姆 ID87t 芭蕉、土豆、苹果 特克斯 您可以使用agrepl搜索字符串中的近似匹配项。如果使用==,则搜索的是精确匹配 my_df 1 id_234洋葱,豆克里斯0 #>2 id_34d苹果汤姆1 #>3号车前草、土豆、苹果tex 1 带dplyr的数据框,请从p。帕乔雷蒂 感谢AnilGoyal forstringr::str_detect # construct the datafr

我有一个示例数据帧,如下所示

公关部 产品 名称 id_234 洋葱,豆子 克里斯 id_34d 苹果 汤姆 ID87t 芭蕉、土豆、苹果 特克斯
您可以使用
agrepl
搜索字符串中的近似匹配项。如果使用
==
,则搜索的是精确匹配

my_df 1 id_234洋葱,豆克里斯0
#>2 id_34d苹果汤姆1
#>3号车前草、土豆、苹果tex 1

带dplyr的数据框,请从p。帕乔雷蒂 感谢AnilGoyal for
stringr::str_detect

# construct the dataframe
pr_id = c("id_234", "id_34d", "id_87t")
product = c("onion,bean",
            "apple", "plantain, potato, apple")
name = c("chris", "tom","tex")

my_df <- data.frame(pr_id, product, name)

# check with case_when and str_detect if apple is in product
my_df <- my_df %>% 
  mutate(result = case_when(stringr::str_detect(product, "apple") ~ 1,
                            TRUE ~ 0)
         )
#构建数据帧
pr_id=c(“id_234”、“id_34d”、“id_87t”)
产品=c(“洋葱、豆”,
“苹果”、“芭蕉、土豆、苹果”)
name=c(“克里斯”、“汤姆”、“特克斯”)

my_df我会在stringr中使用str_detect选项(tidyverse选项)

my_df%
突变(结果=ifelse(str_-detect(产品,“苹果”),1,0))

使用
str\u计数

library(dplyr)
library(stringr)
df %>%
  mutate(result = str_count(product, 'apple'))

这将只匹配完整的字符串。最好使用
stringr::str_detect()
@Tarjae,即当方法未将1分配给具有多个元素的最后一行时。P.Paccioretti解决方案解决了我的问题。谢谢。请看我的更新。多亏了AnilGoyal,我已经适应了。现在应该可以了。谢谢@P.Paccioretti,第一个解决方案解决了我的问题。我还将介绍tidyverse方法。谢谢
library(dplyr)
library(stringr)
df %>%
  mutate(result = str_count(product, 'apple'))