作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我问了一个可能不太清楚的问题。所以我试着用一种可以理解的方式来解释它。这是我的数据
我的数据是这样的
看起来像这样
# V1 V2 V3
#1 Q9UNZ5 Q9Y2W1
#2 Q9ULV4;Q6QEF8
#3 Q9UNZ5
#4 Q9H6F5
#5 Q9H2K0 Q9ULV4;Q6QEF8
#6 Q9GZZ1 Q9UKD2
#7 Q9H6F5 Q9GZZ1 Q9GZZ1
#8 Q9GZZ1 Q9NYF8
#9 Q9BWS9
我想删除所有字符串中的重复字符串例如,我们第一次拥有所有字符串的 V1,因此我们不删除任何内容,只是安排它们具有
Q9ULV4
Q6QEF8
Q9H6F5
Q9GZZ1
Q9BWS9
然后我们用第一列检查第二列字符串,我们删除那些重复的字符串并重新排列它们。对于第三列,我们检查第一列和第二列的字符串,如果相似则我们删除并排列它们。所以输出应该如下所示。
Q9ULV4 Q9UNZ5 Q9Y2W1
Q6QEF8 Q9H2K0 Q9UKD2
Q9H6F5 Q9NYF8
Q9GZZ1
Q9BWS9
它与我问过的任何问题都不相似;所以如果还是不清楚,请发表评论,我会尽力解释
最佳答案
我会分两步来解决这个问题:
1) 获取每列的唯一元素并转换为列表:
l <- lapply(df, function(x) unique(unlist(strsplit(as.character(x), ";"))))
2) 删除出现在任何先前列中的重复项
for(i in seq_along(l)) {
l[[i]] <- setdiff(l[[i]], unlist(l[seq_len(i-1L)]))
}
我使用 list
而不是 data.frame
的原因是因为 data.frame
要求所有列具有相同的行数,这里不是这种情况(除非你用 NA 或空字符串填充它们)。在这种情况下,list
结构是可行的方法。
关于r - 如何上下移动字符串并从中删除相似的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38052776/
这个问题在这里已经有了答案: Is a moved-from vector always empty? (4 个答案) 关闭 4 年前。 从 std::vector move 数据后,它的容量是否必
我是一名优秀的程序员,十分优秀!