vlambda博客
学习文章列表

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[19

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