library(stringr)
df %>%
mutate(
# convert `x` to alternation pattern:
y1 = str_replace_all(x, "(?<=.)(?=.)", "|"),
# which of `y1` are contained in `x`?:
match = str_extract_all(y, y1)
)
x y y1 match
1 abcde efghi a|b|c|d|e e
2 lmnop ovmxw l|m|n|o|p o, m
可以通过添加%>% select(-y1)来删除y1 数据来源:
x <- c("abcde", "lmnop")
y <- c("efghi", "ovmxw")
df <- data.frame(x, y)
5条答案
按热度按时间o7jaxewo1#
ar7v8xwq2#
采用R基方法:
gkl3eglg3#
下面是一个
tidyverse
解决方案,它包含stringr
中的函数,也可以处理多个常用字符:可以通过添加
%>% select(-y1)
来删除y1
数据来源:
brgchamk4#
这里有一个方法,我们通过将'y'列 Package 在
[]
中来更新它,并添加^
,这样,除了那些字符之外的所有字符都将匹配为pattern
,并使用str_remove_all
删除它还处理多个字符,
数据
n9vozmp45#
在函式中使用
strsplit
和intersect
,并进行一些案例行程。用法
使用
within
。使用
$
。使用
dplyr::mutate
。**注意:**由于某种错误,这将不适用于
transform
。