用R中的一个符号替换符号组

时间:2015-12-01 01:46:38

标签: regex r

我有此列表mylist,我想删除所有符号(“_”除外)并替换为“:”并获取result。< / p>

 mylist <- list("NP_570602:+", NA_character_, NA_character_, "XP_006719119:-;NR_040112:-")

result

1 NP_570602
2 NA
3 NA
4 XP_006719119:NR_040112

1 个答案:

答案 0 :(得分:4)

这似乎有效:

v[!is.na(v)] <- lapply(strsplit(v[!is.na(v)], "\\W+"), paste, collapse=":")

# [[1]]
# [1] "NP_570602"
# 
# [[2]]
# [1] NA
# 
# [[3]]
# [1] NA
# 
# [[4]]
# [1] "XP_006719119:NR_040112"

\w字符类是[a-zA-Z_],OP感兴趣的字符。\W是它的补充。