我有一个填充4位数字的因子列。我想用第一个数字代替数字。例如:
号码7819,我想用7代替。 号码2538,我想用2代替。 号码5181,我想用5代替等等...... 我有以下代码:
df$colname<- sub("([0-9]+^7)","7",df$colname)
我想对整列的行进行替换。
拜托,帮帮我!!!
谢谢,
答案 0 :(得分:5)
如何简单地这样做:
> substr("7819-",1,1)
[1] "7"
答案 1 :(得分:1)
使用捕获组:
> sub('(\\d)\\d+', '\\1', '2538')
[1] "2"
> sub('(\\d)\\d+', '\\1', '7819')
[1] "7"
> sub('(\\d)\\d+', '\\1', 'number 7819')
[1] "number 7"
> sub('(\\d)\\d+', '\\1', 'no number')
[1] "no number"
答案 2 :(得分:0)
你也可以这样做:
library(stringr)
vec1 <- c('2538', '7819', 'number 7819', 'no number')
str_replace(vec1,perl('(?<=[0-9])\\d+'), "")
#[1] "2" "7" "number 7" "no number"
(?<=[0-9])\\d+
查看模式匹配任何数字后跟数字
将数字替换为''
不确定-
是否也是字符串的一部分,以及是否要替换它
vec2<- c('2538', '7819', 'number 7819', 'no number', '2583- fun', '-7256 something')
str_replace(vec2,perl('(?<=[0-9])\\d+([[:punct:]]+)?'), "")
# [1] "2" "7" "number 7" "no number" "2 fun"
# [6] "-7 something"