如何拆分每行中的字符串

时间:2017-10-09 23:33:23

标签: r

更改以下V2列的最佳方法是什么:

head(t2g)
              V1                    V2
1: lcl|ScwjSwM_1  sp|Q8RWZ5|SD25_ARATH
2: lcl|ScwjSwM_2 sp|Q9LH84|AATP5_ARATH

成:

head(t2g)
              V1      V2
1: lcl|ScwjSwM_1  Q8RWZ5
2: lcl|ScwjSwM_2  Q9LH84

提前谢谢

1 个答案:

答案 0 :(得分:1)

您可以将strplitsapply合并:

t2g$V2 = sapply(strsplit(t2g$V2, split = "|", fixed = TRUE), `[`, 2)

gsub

t2g$V2 = gsub("^.*[|](\\w+)[|].*$", "\\1", t2g$V2)

<强>结果:

> t2g
             V1     V2
1 lcl|ScwjSwM_1 Q8RWZ5
2 lcl|ScwjSwM_2 Q9LH84

数据:

t2g = read.table(text = "              V1                    V2
                 lcl|ScwjSwM_1  sp|Q8RWZ5|SD25_ARATH
                 lcl|ScwjSwM_2 sp|Q9LH84|AATP5_ARATH", header = TRUE, 
                 stringsAsFactors = FALSE)