R gsub空白后的所有内容
我有点吃力弄清楚如何gsub
后的第一个小时值的“空白”的一切。
as.data.frame(valeur)
valeur
1 8:01 8:15
2 17:46 18:00
3 <NA>
4 <NA>
5 <NA>
6 <NA>
7 8:01 8:15
8 17:46 18:00
我需要的是
valeur
1 8:01
2 17:46
3 <NA>
4 <NA>
5 <NA>
6 <NA>
7 8:01
8 17:46
任何线索?
我试过了
gsub("[:blank:].*$","",valeur)
几乎
valeur = c(" 8:01 8:15 ", " 17:46 18:00 ", NA, NA, NA, NA, " 8:01 8:15 ",
" 17:46 18:00 ")
我想你有'价格'产量的领先/滞后空间。 我们可以删除那些与gsub
。 我们在字符串( s+$
)的字符串( ^s+
)或( |
)空格处匹配一个或多个空格,替换为''
。
valeur1 <- gsub('^s+|s+$', '', valeur)
如果我们需要第一个非空格字符,我们将匹配空格( s+
)后跟非空格( S+
)直到字符串结尾并用''
替换。
sub('s+S+$', '', valeur1)
#[1] "8:01" "17:46" NA NA NA NA "8:01" "17:46"
要获取最后一个非空格字符,请使用sub
从字符串('^')开始,匹配一个或多个不是空格( S+
)的字符,后跟一个或多个空格( s+
)和将其替换为''
以获取最后一个非空格字符。
sub('^S+s+', '', valeur1)
#[1] "8:15" "18:00" NA NA NA NA "8:15" "18:00"
上述操作可以在一个步骤中完成,我们在开头匹配零个或多个空格( ^s*
)或( |
)一个或多个空格( s+
),后跟一个或多个非空格字符( S+
),然后在末尾有零个或多个空格字符( s*$
),并用''
替换。
gsub("^s*|s+S+s*$","",valeur)
#[1] "8:01" "17:46" NA NA NA NA "8:01" "17:46"
或者另一个选项是来自library(stringi)
stri_extract_first
或stri_extract_last
,其中我们匹配开始或结尾处的一个或多个非空格字符。
library(stringi)
stri_extract_first(valeur, regex='S+')
#[1] "8:01" "17:46" NA NA NA NA "8:01" "17:46"
对于last
空字符
stri_extract_last(valeur, regex='S+')
#[1] "8:15" "18:00" NA NA NA NA "8:15" "18:00"
为了贡献,只想到:
substr(x = valeur, start = 2, stop = 6)
[1] "8:01 " "17:46" NA NA NA NA "8:01 " "17:46"
链接地址: http://www.djcxy.com/p/38319.html