R语言 将逗号分隔的字符串(以逗号作为十进制分隔符)拆分为数字

w6mmgewl  于 2022-12-20  发布在  其他
关注(0)|答案(2)|浏览(175)

我写这封信是想问一个简单的问题,但我一直没能解决它。我想分隔R中的一个字符串,其中有逗号分隔的十进制数字,这些数字也是逗号分隔的。唯一存在的规律是任何数字只有两个小数位,但有时数字是在括号中。

输入:

0,60,(0,50),0,71,1,28,1,77,1,60,1,87

预期结果:

0.60, (0.50), 0.71, 1.28, 1.77, 1.60, 1.87
rt4zxlrg

rt4zxlrg1#

下面是一个方法:

input <- '0,60,(0,50),0,71,1,28,1,77,1,60,1,87'

spl <- strsplit(input, ',')[[1]]
even <- !(seq_along(spl) %% 2)
paste0(spl[!even], '.', spl[even])
# [1] "0.60"   "(0.50)" "0.71"   "1.28"   "1.77"   "1.60"   "1.87"

input拆分为',',并使用'.'重新连接后续的奇数和偶数部分。

fae0ux8s

fae0ux8s2#

你可以试试前瞻。

el((strsplit(x, ',(?=\\()|,(?=\\d{1},)', perl=TRUE)))
# [1] "0,60"   "(0,50)" "0,71"   "1,28"   "1,77"   "1,60"   "1,87"
  • 数据:*
x <- '0,60,(0,50),0,71,1,28,1,77,1,60,1,87'

相关问题