我拥有的字符串由带正负号的破折号分隔。例如,我有两个看起来像这样的字符串:
"1-2--3"
"-1-2--3"
我想从字符串1中提取“ 1”,“ 2”,“-3”
并在字符串2中包含“ -1”,“ 2”,“-3”
如何在R中做到这一点?
答案 0 :(得分:7)
您可以使用stringr
进行轻松拆分,并保留正面外观
library(stringr)
x <- c("1-2--3", "-1-2--3")
str_split(x, "(?<=\\d)-")
# [[1]]
# [1] "1" "2" "-3"
#
# [[2]]
# [1] "-1" "2" "-3"
这会在数字后面的每个破折号处分割字符串。
如@IceCreamToucan所指出的那样,如果您设置了strsplit
perl=TRUE
一起使用。
strsplit(x, "(?<=\\d)-", perl=TRUE)