我想使用 R "\n 0.28\n \n " 从字符中获取 0.28。
也许我应该使用 sub() 函数,但我不知道该怎么做。
通常,您想了解正则表达式。这可能令人生畏,但您也可以通过示例学习。
在这里,我们可以做一些相对简单的事情:
R> txt <- "\n 0.28\n \n "
R> gsub(".* ([0-9.]+).*", "\\1", txt)
[1] "0.28"
R> as.numeric(gsub(".* ([0-9.]+).*", "\\1", txt))
[1] 0.28
R>
(...)
标记我们“想要”的东西,这里我们说我们想要数字或点,以及其中的几个(the )+
。然后"\\1"
回忆起那场比赛。
或者,我们可以“擦除”所有的\n
和空格:
R> as.numeric(gsub("[\n ]", "", txt))
[1] 0.28
R>
您的用例不需要正则表达式。
string <- "\n 0.28\n \n "
as.numeric(string)
[1] 0.28
到目前为止的解决方案都很棒,实际上教会了你一些东西。如果您想要愚蠢但简单的答案,taRifx::destring
则可以:
library(taRifx)
> destring("\n 0.28\n \n ")
[1] 0.28
它使用[^...]
正则表达式成语(“not”)而不是像@Dirk 的解决方案中的反向引用:
return(as.numeric(gsub(paste("[^", keep, "]+", sep = ""), "", x)))