我有一个用4位数字填充的因数列。我想用数字的第一个数字来代替它们。例如:
数字7819,我想替换成7。数字2538,我想替换成2。数字5181,我想替换成5,以此类推…我有以下代码:
df$colname<- sub("([0-9]+^7)","7",df$colname)我想对整个列的行进行替换。
请帮帮我!
谢谢,
发布于 2014-07-08 22:24:56
简单地这样做怎么样:
> substr("7819-",1,1)
[1] "7"发布于 2014-07-08 22:31:40
使用采集组:
> 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"发布于 2014-07-08 23:01:38
您还可以执行以下操作:
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"https://stackoverflow.com/questions/24634184
复制相似问题