我有一个带有列名的数据框;
[1] "sample_id" "seq91 Acinetobacter;junii"
[3] "seq157 Acinetobacter;lwoffii" "seq139 Acinetobacter;johnsonii-lwoffii"
[5] "seq225 Acinetobacter;johnsonii" "seq224 Acinetobacter;lwoffii"
[7] "seq278 Acinetobacter;calcoaceticus" "seq327 Acinetobacter;lwoffii"
[9] "seq309 Acinetobacter;lwoffii" "seq508 Acinetobacter;ursingii"
[11] "seq394 Acinetobacter;haemolyticus" "seq540 Acinetobacter;bouvetii"
[13] "seq558 Acinetobacter;bouvetii" "seq541 Acinetobacter;lwoffii"
[15] "seq575 Acinetobacter;haemolyticus-johnsonii-lwoffii" "seq665 Acinetobacter;junii"
[17] "seq707 Acinetobacter;lwoffii" "seq755 Acinetobacter;haemolyticus-johnsonii-lwoffii"
[19] "seq677 Acinetobacter;marinus" "seq758 Acinetobacter;johnsonii"
[21] "seq836 Acinetobacter;junii" "seq768 Acinetobacter;septicus-ursingii"
[23] "seq770 Acinetobacter;bouvetii-johnsonii" "seq928 Acinetobacter;tjernbergiae"
[25] "seq864 Acinetobacter;harbinensis" "seq902 Acinetobacter;parvus"
我想删除Acinetobacter
之前的所有内容。但是,随着位数的变化,我无法使用gsub
。另外,在那之后,我想总结具有相同名称的列的值。由于列名必须唯一,因此在除去序列号和数字后如何执行求和?我有38个不同数据帧的列表,我想在bind_rows
或bind_columns
之后将它们合并在一起。
您可以尝试按照以下模式进行替换:
^.*?(?=\bAcinetobacter\b)
然后,将以上捕获的内容替换为空字符串。这是一个示例:
x <- "seq157 Acinetobacter;lwoffii"
output <- sub("^.*?(?=\\bAcinetobacter\\b)", "", x, perl=TRUE)
output
[1] "Acinetobacter;lwoffii"