更改以下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
提前谢谢
答案 0 :(得分:1)
您可以将strplit
与sapply
合并:
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)