R语言学习12-文本处理
在大多数类型中,数据都是以文本编码的,即使有时候表示的是数字。因此学习对文本的操作是有必要的。R
提供了一些用于处理文本的内置工具,并且R
为文本分析提供了丰富的软件包生态系统。首先,让我们学习一些基本的文本操作功能。
文本在R
中是字符串对象,在控制台里用引号包围。比如"hello"
和"Strings are fun!"
都是字符串。我们可以通过is.character()
函数判断一个对象是否是字符串。字符串在R
中也称为字符。
我们可以直接把字符串赋值给变量,比如把Hello World!
赋值给变量x
。
1> x <- "Hello World!"
2> x
3[1] "Hello World!"
连接合并字符串
可以使用paste()
连接多个字符串。
1> paste("Square", "Circle", "Triangle")
2[1] "Square Circle Triangle"
默认情况下,paste()
函数的分隔符使用的是空格" "
。通过sep
参数可以指定其他分隔符。
1> paste("Square", "Circle", "Triangle", sep = "+")
2[1] "Square+Circle+Triangle"
有一个与paste()
函数类似的函数paste0()
,这个函数的作用也是连接字符串,但是连接后的字符串没有分隔符,因此也没有sep
参数。
1> paste0("Square", "Circle", "Triangle")
2[1] "SquareCircleTriangle"
paste()
除了能接受字符串作为参数外,也接受字符串向量作为参数。
1> shapes <- c("Square", "Circle", "Triangle")
2> paste("My favorite shape is a", shapes)
3[1] "My favorite shape is a Square" "My favorite shape is a Circle" "My favorite shape is a Triangle"
可以看到,当字符串和字符串向量一起作为参数时,字符串和向量的每一个元素都进行了连接。即字符串被当成了单元素的向量,并循环复用了。
我们还可以使用paste()
连接字符串向量内部的字符串,并使用collapse
参数指定分隔符。
1> paste(shapes, collapse = " ")
2[1] "Square Circle Triangle"
其他操作
除了连接字符串外,我们还应该了解其他一些基本的字符串操作功能。
当我们想统计一个字符串由多少个字符组成时,可以使用nchar()
。
1> nchar("Count Me!")
2[1] 9
toupper()
和tolower()
函数可以分别将字符串全部转成大写和小写。
1> cases <- c("CAPS", "low", "Title")
2> toupper(cases)
3[1] "CAPS" "LOW" "TITLE"
4
5> tolower(cases)
6[1] "caps" "low" "title"
小结
在本课程中,我们仅介绍了在R
中操作字符串的基础知识,在正则表达式课程中会学习更多内容。
paste()
paste0()
nchar()
toupper()
tolower()