【问题标题】:How to get matching characters?如何获得匹配的字符?
【发布时间】:2022-12-04 02:00:55
【问题描述】:

我正在尝试从两个单独的向量中获取常用字符。

例子:

x <- c("abcde")
y <- c("efghi")
df <- data.frame(x, y)

期望的输出

    x       y     z 
abcde   efghi     e     
lmnop   uvmxw     m

我试过这样的事情,但结果很糟糕:

df |> mutate(m = unique(x, y))

【问题讨论】:

  • 如果有多个共同角色,你希望发生什么?返回列表?一个子串?还有什么?或者如果重复了一个普通字符怎么办?
  • 如果有多个常用字符,列表会很有效。
  • 你的例子最好包括多种情况,这样我们就可以看到你是如何处理这个问题的

标签: r


【解决方案1】:
str_intersect <- function(s1,s2) {
  paste0(intersect(strsplit(s1,"")[[1]],strsplit(s2,"")[[1]]),collapse = "")
}

x <- c("abcde","abc")
y <- c("efghi","b")
df <- data.frame(x, y)

library(dplyr)
df %>%
  rowwise() %>%
  mutate(m = str_intersect(x,y))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-17
    • 2015-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多