我有此列表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
答案 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
是它的补充。