r - 如何根据第二个字符串删除字符串中的字符?

标签 r

考虑以下两个字符串:

string1 <- "GCTCCC...CTCCATGAAGTA...CTTCACATCCGTGT.CCGGCCTGGCCGCGGAGAGCCC"
string_reference <- "GCTCCC...CTCCATGAAGTATTTCTTCACATCCGTGT.CCGGCCTGGCCGCGGAGAGCCC"

如何轻松删除“字符串1”中的点,但仅删除那些在“字符串引用”中相同位置的点?

预期产量:
string1 = "GCTCCCCTCCATGAAGTA...CTTCACATCCGTGTCCGGCCTGGCCGCGGAGAGCCC"

最佳答案

与罗伯特(Robert)相似,但是是“矢量化”版本:

s1 <- unlist(strsplit(string1, ""))
s2 <- unlist(strsplit(string_reference, ""))
paste0(Filter(Negate(is.na), ifelse(s1 == s2 & s1 == ".", NA, s1)), collapse="")
# [1] "GCTCCCCTCCATGAAGTA...CTTCACATCCGTGTCCGGCCTGGCCGCGGAGAGCCC"

我引用“向量化”是因为向量化发生在字符串向量的字符上。假设字符串向量中只有一个元素。如果字符串向量中包含多个元素,则必须遍历strsplit的结果。

关于r - 如何根据第二个字符串删除字符串中的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22622123/

相关文章:

r - 为什么我的 Shiny 应用程序没有发布

r - 从计数数据生成数据框

r - 如果 value 中的 a 值等于 R 中的上一行,则删除整行

r - 从 R 数据框列中提取键值对

r - 对于所有可能的二路表,可推广 for 循环吗?

r - 如何将 RShiny reactiveFileReader 与 reactiveUI 和不存在的文件一起使用?

r - 在 R 中的广度优先搜索期间更改节点的属性

r - R中的并排箱线图

r - 了解 rstudioapi 包中的 getActiveDocumentContext() 函数

r - 如何使用 Microsoft R Open 3.3.2 获得 rmarkdown 1.2