r - 检测数据框中的任何字符是否存在于字符串列表中
问题描述
我有一组字符串,我想检查它们是否包含在单独的数据框中动态创建的任何字符。例如:
library(dplyr)
library(stringr)
#Create data frame of Values to check against
df <- data.frame(Value = 33:53) #these values will be dynamic
#Add in Utf8 conversion
df <- df %>% rowwise() %>% mutate(Utf8 = intToUtf8(Value))
#create data frame of strings to check
df_check <- data.frame(string = c("CDEFFFFFFFEFADFFFFF","CDEFFFFFFF&FADFFFFF"))
我现在想检查字符串是否包含 中的任何字符,并在新列或新列中df
输出。我不想使用标准的正则表达式来检查是否存在任何字符,因为 的长度可以是可变的并且可以省略某些字符。我可以像这样检查单个字符(这给了我想要的输出,但只有一个字符):TRUE
FALSE
df
df_check <- df_check %>% rowwise() %>% mutate(contains_chr = list(str_detect(string,"&")))
> string contains_chr
> CDEFFFFFFFE!FADFFFFF FALSE
> CDEFFFFFFF&!FADFFFFF TRUE
如何制作“contains_chr”列TRUE
或FALSE
根据是否df
出现任何字符?我试过这个但它失败了:
df_check <- df_check %>% rowwise() %>% mutate(contains_chr = list(str_detect(string,df)))
Error: Problem with `mutate()` column `contains_chr`.
ℹ `contains_chr = list(str_detect(string, df))`.
x no applicable method for 'type' applied to an object of class "c('rowwise_df', 'tbl_df', 'tbl', 'data.frame')"
ℹ The error occurred in row 1.
我不知道如何检查df$Utf8
. 我可能可以将它放入 for 循环中的每一行df
,但是有数百万个字符串,这似乎会很慢。
解决方案
推荐阅读
- excel - 如何让 SLOPE 使用 excel 数组公式
- c# - C# / F# 如何压缩/解压缩大字符串以在 SQL Server 中存储为二进制文件
- opencv - opencvmorphologyEx(...,borderValue) 参数的预期格式是什么?
- angular - 如何修复 Angular FormArray 错误:找不到具有未指定名称属性的控件
- ios - 如何使用CKNotification?
- php - 使用 PHP 从 json 文件中获取最大值/最小值
- spring-micrometer - 无法使用千分尺查看 RestTemplate 指标
- javascript - 如何跨多个 React Redux 组件使用 requestAnimationFrame 实现游戏循环?
- android - 如何使用暴露于 android contentResolver/Mediastore 的 jetbrains
- reactjs - 在 Github Pages 上更改为自定义域会导致带有 react-router 的 create-react-app 停止工作