如何使用%,-和+作为可能的分隔符将字符列分为3列,并将分隔符保留在新列中?

示例数据:

data <- data.table(x=c("92.1%+100-200","90.4%-1000+200", "92.8%-200+100", "99.2%-500-200","90.1%+500-200"))

所需数据示例:
data.desired <- data.table(x1=c("92.1%", "90.4%", "92.8%","99.2%","90.1%")
                           , x2=c("+100","-1000","-200","-500","+500")
                           , x3=c("-200","+200","+100","-200","-200"))

乐于奖励积分,这是一个很好的答案,并为此提供了一些帮助!

最佳答案

data.table中,等效的是tstrsplit:

data[, c("x1","x2","x3") := tstrsplit(x, "(?<=.)(?=[+-])", perl=TRUE) ]
data
#                x    x1    x2   x3
#1:  92.1%+100-200 92.1%  +100 -200
#2: 90.4%-1000+200 90.4% -1000 +200
#3:  92.8%-200+100 92.8%  -200 +100
#4:  99.2%-500-200 99.2%  -500 -200
#5:  90.1%+500-200 90.1%  +500 -200

关于r - 用多个定界符分割列,保留定界符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53715609/

10-12 22:32
查看更多