我有一个相互面对的410个DNA序列,以获得相似性。
现在,要修剪数据库,我应该摆脱两列中具有相同值的行,因为当然每个值都将是双精度值。
为了使自己清楚,我有类似
tribble(
~seq01, ~seq02, ~ similarity,
"a", "b", 100.000,
"b", "a", 100.000,
"c", "d", 99.000,
"d", "c", 99.000,
)
比较ab和ba是同一回事,所以我想摆脱double值
我要结束的是
tribble(
~seq01, ~seq02, ~ similarity,
"a", "b", 100.000,
"c", "d", 99.000
)
我不确定如何进行,我想到的所有方式都有些古怪。我检查了其他答案,但并不真正令我满意。
任何输入将不胜感激(但整洁的输入将更加感激!)
我们可以使用pmin
和pmax
对值进行排序,然后使用distinct
选择唯一的行。
library(dplyr)
df %>%
mutate(col1 = pmin(seq01, seq02),
col2 = pmax(seq01, seq02), .before = 1) %>%
distinct(col1, col2, similarity)
# col1 col2 similarity
# <chr> <chr> <dbl>
#1 a b 100
#2 c d 99
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句