回答
通常,您想了解正則表達式。這可能令人生畏,但你也可以通過示例來學習。
在這裏,我們可以做的,比較簡單的事情:
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>
的(...)
馬克的東西,我們「希望」,在這裏我們說,我們希望數字或點,其中幾(的+
)。 "\\1"
然後回憶那場比賽。
另外,我們也只是「抹掉」所有的\n
和空間:
R> as.numeric(gsub("[\n ]", "", txt))
[1] 0.28
R>
很好的反應和很好的解釋例子。正則表達式需要更多這個+1 – 2013-05-05 01:14:04
你並不需要爲您的使用案例的正則表達式。
string <- "\n 0.28\n \n "
as.numeric(string)
[1] 0.28
不錯的一個。似乎只要還有另一位數字就會中斷,但這個例子確實有效。 – 2013-05-05 01:04:15
@Dirk。你不想讓它突破嗎?使用例如'txt < - 「\ n 1.5 \ n 33 \ n」'您的兩個解決方案將分別給出'33'和'1.533'。並不是說你的回答很糟糕。 – flodel 2013-05-05 01:27:26
迄今爲止的解決方案非常棒,實際上教會了你一些東西。如果你想在愚蠢的,但簡單的答案,taRifx::destring
將工作:
library(taRifx)
> destring("\n 0.28\n \n ")
[1] 0.28
它使用[^...]
正則表達式的成語(「不」),而不是向後引用作爲@德克的解決方案:
return(as.numeric(gsub(paste("[^", keep, "]+", sep = ""), "", x)))
- 1. PHP - 從此字符串中刪除「\ r \ n \ r \ n」的問題:「我想:\ r \ n \ r \ n1。)解決這個問題\ r \ n \ r \ n \ 2。)現在請「
- 2. PHP郵件中的換行符():\ n,\\ n和\ r \ n不工作
- 3. 構造以下語言的DFA:L = {a^n b^n | n> = 1}
- 4. 刪除\ r \ n \ r \ n
- 5. 刪除\ r \ n \ r \ n
- 6. 如何獲得總和x^n/n!在序言中?
- 7. 使用'\ r \ n \ r \ n'或'\ n \ n'結束HTTP請求
- 8. 獲得每組最後[n,n + t]天
- 9. 語言A = {0^n 1^n 0^n}上下文是否免費?
- 10. 從包含\ n的數據庫獲取字符串,而不是獲得\\ n
- 11. 擺脫\ r \ n字符串
- 12. 嘗試替換文件中的\ r \ n \ n但不是\ r \ n
- 13. \ r \ n \ r \ n字符串進入純文本
- 14. 大O符號 - O(n日誌(N))對O(的log(n^2))
- 15. 用「\ n」代替「\ r \ n」
- 16. javascript,用\ r \ n替換\ n
- 17. 替換\ r \ n與\ n
- 18. 從Integer獲得n LSB C++
- 19. 的Python:在列表中替換\ n \ r \噸不包括起始\ n \ n和與\ n \ r \ n \噸結束
- 20. WebView語言錯誤Android N
- 21. 使用sed獲取前N個字符和後N個字符
- 22. 從R中的字符串中提取最後n個字符
- 23. 採用分體式用\ r \ n \ r \ n
- 24. SMTP:\ r \ n \ r(無第二\ n)的爲雙換行符
- 25. 紅寶石 - 從字符串獲得第n個字符
- 26. 序言:簡單的DCG a^n b^n
- 27. 編號的第n個根(
- 28. Python 2.7版的Linux \ n到Windows \ r \ n
- 29. JavaScript的轉換\ n至用\ r \ n
- 30. 刪除 '\ n \ n。' C++
這幾乎是這些以前的問題的副本:http://stackoverflow.com/q/14543627/1036500和http://stackoverflow.com/q/15451251/1036500這些問題的一些答案也適用於這裏,例如。 'as.numeric(gsub(「[[:alpha:]]」,「」,string))' – Ben 2013-05-05 06:47:05