R如何将简单的功能(如“-10.81 + 2.02”)分隔为数字,例如“ - 10.81”和“2.02”?

时间:2014-04-11 23:50:31

标签: regex r

我的数据如下: -10.81 + 2.02 47-7 我需要做的是将每一个分成两个数字并将它们加在一起 例如。将-10.81 + 2.02分成" -10.81"和" 2.02"然后将它们加在一起,这样我就可以得到-8.79 将47-7分成47和-7,并将它们加在一起得到40。

非常感谢!

1 个答案:

答案 0 :(得分:1)

您可以使用strsplit将字符串分解为多个部分,然后evalparse来评估数学表达式:

dat <- "-10.81+2.02 47-7"
sapply(strsplit(dat, " ")[[1]], function(x) eval(parse(text=x)))
# -10.81+2.02        47-7 
#       -8.79       40.00

如果你不喜欢矢量上的名字,你可以改为:

unname(sapply(strsplit(dat, " ")[[1]], function(x) eval(parse(text=x))))
# [1] -8.79 40.00