在程序开发中,姓名、性别(男或女)、商品名称、类别等通常用字符串表示,因此经常需要对字符串做各种操作处理。常用的字符串操作有连接字符串、计算字符串长度、字符大小写转换、截取字符串等。
在R语言中,通常使用一对单引号(' ')或双引号(" ")将字符串括起来。具体规范如下。
单引号或双引号应成对出现,分别位于字符串的开头和结尾。如'mrsoft'、"mrsoft"。
字符串的打印和显示通常采用双引号形式表示。
如果字符串中已经包含单引号,则再次出现单引号需要进行转义(使用反斜杠“\”)。
单引号不能插入以单引号开头和结尾的字符串中。
单引号可以插入以双引号开头和结尾的字符串中。
双引号不能插入以双引号开头和结尾的字符串中。
示例代码如下:
a <- '编程改变命运' print(a) b <- "编程改变命运" print(b) c <- '编程\'改变命运' print(c) d <- "编程'改变'命运" print(d)
运行程序,结果如图3.6所示。
图3.6 字符串规范
字符串常用处理函数如表3.9所示。
表3.9 字符串处理函数
在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 连接字符串
nchar()函数用于计算字符串中字符的个数(包含空格的字符数),语法格式如下:
nchar(x)
其中,参数x表示一个向量。
示例代码如下:
myval <- nchar("吉林省明日科技有限公司 ") print(myval) myval <- nchar("www.mingrisoft.com") print(myval)
运行程序,结果如图3.8所示。
图3.8 计算字符串长度
在R语言中,toupper()函数和tolower()函数用于改变字符串中字符的大小写,语法格式如下:
toupper(x) tolower(x)
其中,参数x表示一个向量。
示例代码如下:
myval <- toupper("mingrisoft.COM") print(myval) myval <- tolower("mingrisoft.COM") print(myval)
运行程序,结果如图3.9所示。
图3.9 大小写转换
substring()函数用于截取字符串中的一部分字符,语法格式如下:
substring(x,first,last)
参数说明如下。
x:字符向量。
first:要提取的第一个字符的位置。
last:要提取的最后一个字符的位置。
示例代码如下:
myval <- substring("www.mingrisoft.com", 5, 14) print(myval)
运行程序,结果如图3.10所示。
图3.10 字符串截取
grep()函数和grepl()函数可在向量中查询指定字符串。
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时,返回结果位置的值。
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()函数查找指定字符串