r - 如何匹配 R 中两个向量的逆序

标签 r pattern-matching

我有两个向量

key.vec <- c("apple:ball", "ball:cat","dog:ear")

vec2 <- c("ball:apple","cat:cat","cat:ball","ball:cat","apple:ball")

我现在想使用 key.vec 来查找 vec2 中的项目并获取项目,而不管它们的顺序由 分隔: .

所以如果我尝试这样的操作,结果应该如下所示vec2[match(key.vec,vec2)]:

结果:

"apple:ball", "ball:cat", "ball:apple","cat:ball"

最佳答案

这应该有效。

按每个字符拆分所有向量,然后找到每个字符的频率 (key.vec)。接下来查找目标向量 (vec2) 中是否存在每个字符的相同频率。这将有助于处理这两种模式。

vec2[lapply(strsplit(vec2, ""), table) %in% lapply(strsplit(key.vec, ""), table)]

#[1] "ball:apple" "cat:ball"   "ball:cat"   "apple:ball"

关于r - 如何匹配 R 中两个向量的逆序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39504002/

相关文章:

java - MySQL 重复事件

R 字符和日期类型比较

r - 计算在多项选择题中选择一个选项同时选择其他每个选项的调查回复的比例

r - 寻找 "vectorized"版本来存储矩阵中向量元素的差异

r - 从R中的向量中提取单词的总频率

sql - 每行的正则表达式的匹配计数

与枚举匹配的 Swift guard 语句模式

python - 解析词结构的正则表达式

Java正则表达式与两个条件混淆

r - 在带有空值的 shiny 中使用 observeEvent