3
我想在R的字符串的開頭提取數字的字符串的開頭提取號碼,我已經試過這樣:從正則表達式
> tt <- "51 - TS - Data estimated - see comments"
> grep('^[0-9]+', tt, value=T)
[1] "51 - TS - Data estimated - see comments"
爲什麼返回整個字符串,而不是隻是數字?
我想在R的字符串的開頭提取數字的字符串的開頭提取號碼,我已經試過這樣:從正則表達式
> tt <- "51 - TS - Data estimated - see comments"
> grep('^[0-9]+', tt, value=T)
[1] "51 - TS - Data estimated - see comments"
爲什麼返回整個字符串,而不是隻是數字?
grep
如果找到模式,則返回位置或(整個輸入的)值。
嘗試gsub
或gregexpr
+ regmatches
代替:
gsub("(^[0-9]+).*", "\\1", tt)
# [1] "51"
x <- gregexpr("^[0-9]+", tt)
regmatches(tt, x)
# [[1]]
# [1] "51"
1)子嘗試此其除去所述第一非數字和此後的一切:
> sub("\\D.*", "", tt)
[1] "51"
2)strsplit或這在非數字分裂並採取第一這樣組分:
> strsplit(tt, "\\D")[[1]][1]
[1] "51"
3)strapplyc或這裏面提取領先的數字:
> library(gsubfn)
> strapplyc(tt, "^\\d+", simplify = TRUE)
[1] "51"
我想出了:'GSUB( '[^ 0-9]', 「」,TT)'但阿南達的+1 –
謝謝,當我可以接受這個答案... –
@TylerRinker,不知道我會這麼說,但謝謝:-) – A5C1D2H2I1M1N2O1R2T1