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()
