首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用4位数字的第一位数字替换4位数字

用4位数字的第一位数字替换4位数字
EN

Stack Overflow用户
提问于 2014-07-08 22:17:39
回答 3查看 118关注 0票数 0

我有一个用4位数字填充的因数列。我想用数字的第一个数字来代替它们。例如:

数字7819,我想替换成7。数字2538,我想替换成2。数字5181,我想替换成5,以此类推…我有以下代码:

代码语言:javascript
复制
df$colname<- sub("([0-9]+^7)","7",df$colname)

我想对整个列的行进行替换。

请帮帮我!

谢谢,

EN

回答 3

Stack Overflow用户

发布于 2014-07-08 22:24:56

简单地这样做怎么样:

代码语言:javascript
复制
 > substr("7819-",1,1)
 [1] "7"
票数 5
EN

Stack Overflow用户

发布于 2014-07-08 22:31:40

使用采集组:

代码语言:javascript
复制
> 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"
票数 1
EN

Stack Overflow用户

发布于 2014-07-08 23:01:38

您还可以执行以下操作:

代码语言:javascript
复制
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+向后查找匹配任何数字后跟数字的模式

将数字替换为''

更新

不确定-是否也是字符串的一部分,以及是否要替换它

代码语言:javascript
复制
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"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24634184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档