我写这封信是想问一个简单的问题,但我一直没能解决它。我想分隔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
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拆分为',',并使用'.'重新连接后续的奇数和偶数部分。
input
','
'.'
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'
2条答案
按热度按时间rt4zxlrg1#
下面是一个方法:
将
input
拆分为','
,并使用'.'
重新连接后续的奇数和偶数部分。fae0ux8s2#
你可以试试前瞻。