gpt4 book ai didi

r - 按多个分隔符拆分列,保留分隔符

转载 作者:行者123 更新时间:2023-12-02 07:04:23 26 4
gpt4 key购买 nike

如何使用 %、- 和 + 作为可能的分隔符将字符列拆分为 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"))

很高兴为您提供的良好答案和一些帮助而奖励积分!

最佳答案

我们可以使用 separatetidyr 进行分割,并使用正向前瞻来保留分隔符:

data %>% separate(x, c("x1", "x2", "x3"), sep = "(?=\\+|-)")
# x1 x2 x3
# 1: 92.1% +100 -200
# 2: 90.4% -1000 +200
# 3: 92.8% -200 +100
# 4: 99.2% -500 -200
# 5: 90.1% +500 -200
<小时/>

也就是说,请注意,简单地通过 \\+|- 进行分割,我们会得到

data %>% separate(x, c("x1", "x2", "x3"), sep = "\\+|-")
# x1 x2 x3
# 1: 92.1% 100 200
# 2: 90.4% 1000 200
# 3: 92.8% 200 100
# 4: 99.2% 500 200
# 5: 90.1% 500 200

使用 (?=\\+|-) 在“无”处拆分,以防紧接着我们有 +- (不匹配)。

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com