购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.4 字符串

在程序开发中,姓名、性别(男或女)、商品名称、类别等通常用字符串表示,因此经常需要对字符串做各种操作处理。常用的字符串操作有连接字符串、计算字符串长度、字符大小写转换、截取字符串等。

3.4.1 字符串规范

在R语言中,通常使用一对单引号(' ')或双引号(" ")将字符串括起来。具体规范如下。

单引号或双引号应成对出现,分别位于字符串的开头和结尾。如'mrsoft'、"mrsoft"。

字符串的打印和显示通常采用双引号形式表示。

如果字符串中已经包含单引号,则再次出现单引号需要进行转义(使用反斜杠“\”)。

单引号不能插入以单引号开头和结尾的字符串中。

单引号可以插入以双引号开头和结尾的字符串中。

双引号不能插入以双引号开头和结尾的字符串中。

示例代码如下:

     a <- '编程改变命运'
     print(a)
     b <- "编程改变命运"
     print(b)
     c <- '编程\'改变命运'
     print(c)
     d <- "编程'改变'命运"
     print(d)

运行程序,结果如图3.6所示。

图3.6 字符串规范

3.4.2 字符串常用函数

字符串常用处理函数如表3.9所示。

表3.9 字符串处理函数

3.4.3 连接字符串

在R语言中,使用paste()函数可以将字符串连接起来。paste()函数可以将任何数量的参数组合在一起,语法格式如下:

     paste(..., sep = " ", collapse = NULL)

参数说明如下。

...:要组合在一起的任意数量的变量。

sep:参数之间的分隔符,可选参数。

collapse:用于去除两个字符串之间的空格。注意,这里去除的不是一个字符串中两个字符之间的空格。

【例3.3】 字符串的连接 (实例位置:资源包\Code\03\03)

使用paste()函数连接各种字符串。运行RGui,新建程序脚本,编写如下代码:

     a <- "www"
     b <- 'mrsoft'
     c <- "com "
     print(paste(a,b,c))
     print(paste(a,b,c, sep = "."))
     print(paste(a,b,c, sep = ".", collapse = ""))

运行程序,结果如图3.7所示。

图3.7 连接字符串

3.4.4 计算字符串长度

nchar()函数用于计算字符串中字符的个数(包含空格的字符数),语法格式如下:

     nchar(x)

其中,参数x表示一个向量。

示例代码如下:

     myval <- nchar("吉林省明日科技有限公司 ")
     print(myval)
     myval <- nchar("www.mingrisoft.com")
     print(myval)

运行程序,结果如图3.8所示。

图3.8 计算字符串长度

3.4.5 字符大小写转换

在R语言中,toupper()函数和tolower()函数用于改变字符串中字符的大小写,语法格式如下:

     toupper(x)
     tolower(x)

其中,参数x表示一个向量。

示例代码如下:

     myval <- toupper("mingrisoft.COM")
     print(myval)
     myval <- tolower("mingrisoft.COM")
     print(myval)

运行程序,结果如图3.9所示。

图3.9 大小写转换

3.4.6 截取字符串

substring()函数用于截取字符串中的一部分字符,语法格式如下:

     substring(x,first,last)

参数说明如下。

x:字符向量。

first:要提取的第一个字符的位置。

last:要提取的最后一个字符的位置。

示例代码如下:

     myval <- substring("www.mingrisoft.com", 5, 14)
     print(myval)

运行程序,结果如图3.10所示。

图3.10 字符串截取

3.4.7 查询字符串

grep()函数和grepl()函数可在向量中查询指定字符串。

1.grep()函数

grep()函数用于在向量x中寻找含有特定字符串(由pattern参数指定)的元素,返回其在x中的下标。语法格式如下:

     grep(pattern, x, ignore.case = FALSE, perl = FALSE, value = FALSE, fixed = FALSE, useBytes = FALSE, invert = FALSE)

主要参数说明如下。

pattern:字符串类型,正则表达式,用于指定搜索模式。当fixed为TRUE时,表示待搜索的字符串。

x:字符串向量,表示被搜索的字符串。

value:逻辑值,为FALSE时,grep返回搜索结果的位置信息;为TRUE时,返回结果位置的值。

2.grepl()函数

grepl()函数用于查询向量x中是否包含特定的字符串,返回一个逻辑向量,值为TRUE或FALSE。语法格式如下:

     grepl(pattern, x, ignore.case = FALSE, perl = FALSE, fixed = FALSE, useBytes = FALSE)

参数说明参见grep()函数。

【例3.4】 查找指定的字符 (实例位置:资源包\Code\03\04)

创建一个字符串向量,分别使用grep()函数和grepl()函数查找指定字符串。运行RGui,新建程序脚本,编写如下代码:

运行程序,结果如图3.11所示。

图3.11 使用grep()函数和grepl()函数查找指定字符串 8PKSfEaXzOKdUPijGu5uGSygarhyzx1DqpdgwbqxzzSI/x3lvIucAghcteDdumUQ

点击中间区域
呼出菜单
上一章
目录
下一章
×