美文网首页
R语言中的字符串

R语言中的字符串

作者: 大数据技术派 | 来源:发表于2019-03-10 23:07 被阅读0次

R语言提供了丰富的字符串函数,这里介绍几个R语言里面常用的基本字符串处理函数,详细参数可以在R中查看帮助。

nchar()

nchar(x)用来返回字符串或者字符串向量x的长度。

> a <- '123'

> nchar(a)

[1] 3

> a2 <- c('123','456789','abc')

也可以作用于字符串向量,返回长度向量。

> nchar(a2)

[1] 3 6 3

grep()

grep(pattern,x)返回匹配模式pattern在字符串向量x中(或许是x的元素的一部分)的位置,用例子说明。

> a

[1] "123"

> a2

[1] "123" "456789" "abc"

> grep('1',a)

[1] 1

> grep('123',a)

[1] 1

> grep('4',a2)

[1] 2

> grep('ab',a2)

[1] 3

> grep('ba',a2)

integer(0)

> grep('abc',a2)

[1] 3

paste()

paste(...)可以把若干字符串连接起来,默认返回字符串以空格隔开。

> paste('1','a','bc','4')

[1] "1 a bc 4"

同胞兄弟paste0()则直接返回连接后的字符串,如下:

> paste0('1','a','bc','4')

[1] "1abc4"

> paste('1','a','bc','4',sep = '')

[1] "1abc4"

> paste('1','a','bc','4',sep = ',')

[1] "1,a,bc,4"

> paste('1','a','bc','4',sep = '/')

[1] "1/a/bc/4"

> paste('今天是','2017','6','17','日',sep = '/')

[1] "今天是/2017/6/17/日"

可以任意为其添加分隔符,默认以空格分隔。

sprintf()

sprintf(...)可以按照一定格式把若干的组件组合成字符串。下面是个简单例子:

> m <- 11

> sprintf('the square of %d is %d',m,m^2)

[1] "the square of 11 is 121"

学过C语言的人这个就很好理解了,其实在matlab中这行代码是可以运行的,也就是语法一样哦!

substr()

substr(x,start,stop)截取字符串x中start到stop范围的字串。

> a

[1] "123"

> a2

[1] "123" "456789" "abc"

> substr(a,1,2)

[1] "12"

对于字符串向量则是对向量每个元素截取。

> substr(a2,1,2)

[1] "12" "45" "ab"

strsplit()

strsplit(x,split)根据split将x拆分成若干字串,返回这些字串组成的列表。

> b <- '2017/6/17'

> b

[1] "2017/6/17"

> strsplit(b,'/')

[[1]]

[1] "2017" "6" "17"

可以用unlist()函数将其转化成字符串向量:

> unlist(strsplit(b,'/'))

[1] "2017" "6" "17"

regexpr()

regexpr(pattern,x)在字符串x中寻找pattern,返回与pattern匹配的第一个子字符串的起始字符位置。例如:

> b2 <- 'Bobsay:helloworld!'

> regexpr('hello',b2)

[1] 8

attr(,"match.length")

[1] 5

attr(,"useBytes")

[1] TRUE

“hello”存在b2的第八个位置开始,并且长度为5。

gregexpr()

gregexpr(pattern,x)实现与regexpr()一样的功能,不过它会查找x中的所有与pattern匹配的字串开始位置及长度。

> b3 <- paste0(b2,b2)

> b3

[1] "Bobsay:helloworld!Bobsay:helloworld!"

> gregexpr('hello',b3)

[[1]]

[1] 8 26

attr(,"match.length")

[1] 5 5

attr(,"useBytes")

[1] TRUE

显然,“hello”这个待匹配模式串在b3中出现了2次,所以返回了2个开始位置。

觉得不错,记得点赞哦,也可以分享、让更多的人看到!

相关文章

  • R语言中的字符串

    R语言提供了丰富的字符串函数,这里介绍几个R语言里面常用的基本字符串处理函数,详细参数可以在R中查看帮助。 nch...

  • R语言技巧每日分享day12-正则表达式

    stringr 包是 R 语言中常用的字符串处理包,提供了一系列函数用于对字符串进行操作,如字符串拼接、替换、截取...

  • R语言技巧每日分享day11-stringr的字符串常用函数

    stringr 包是 R 语言中常用的字符串处理包,提供了一系列函数用于对字符串进行操作,如字符串拼接、替换、截取...

  • R语言技巧每日分享day13

    stringr 包是 R 语言中常用的字符串处理包,提供了一系列函数用于对字符串进行操作,如字符串拼接、替换、截取...

  • R语言 字符串

    在R语言中的单引号或双引号对中写入的任何值都被视为字符串。 R语言存储的每个字符串都在双引号内,即使是使用单引号创...

  • R programming - WEEK4

    参考文献 R语言实例-数据过滤grep正则表达式R 语言中,数据框依据不同列进行排序R语言rank函数详细解析R语...

  • C语言- 字符、字符数组

    字符数组和字符串 C语言中没有字符串这种数据类型,C语言中通过char型数组来替代字符串的功能。C语言中的字符串一...

  • 学习小组DAY5-数据结构

    注意事项 R的代码都是带括号的,括号必须是英文的向量是由元素组成的,元素可以是数字或者字符串表格在R语言中改名叫数...

  • 学习小组第三期Day5--王灵

    R语言基本知识 向量是由元素组成的,元素可以是数字或者字符串 表格在R语言中改名叫作数据框 函数或者命令不会用时,...

  • 字符串的处理(初步处理+stringr&stringi)

    字符串的处理与正则表达式关系密切,参考:R语言中的正则表达式[https://www.jianshu.com/p/...

网友评论

      本文标题:R语言中的字符串

      本文链接:https://www.haomeiwen.com/subject/rpdmpqtx.html