R语言学习14-stringr包

Posted 柠檬培养师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言学习14-stringr包相关的知识,希望对你有一定的参考价值。

R中处理字符串,stringr包是最合适的包之一。
stringr包中大多数函数接受2个参数:要处理的字符串和正则表达式。

其他函数

在学习stringr包之前,我们可以看看R中内建的处理字符串函数是如何使用正则表达式的。

在上一课中,我们一直使用grepl()查看正则表达式是否与字符串匹配。grepl()代表grep逻辑。

1> grepl("[Ii]", c("Hawaii""Illinois""Kentucky"))
2[1]  TRUE  TRUE FALSE

还有一个老式的grep(),它返回与正则表达式参数匹配的向量的索引。

1> grep("[Ii]", c("Hawaii""Illinois""Kentucky"))
2[11 2

对字符串进行替换操作的时候,我们可以使用sub()函数。sub()接受3个参数:

  1. 正则表达式

  2. 替换内容

  3. 需要被替换的字符串

sub()会替换匹配到的第一个结果。

1> sub("[Ii]""1", c("Hawaii""Illinois""Kentucky"))
2[1"Hawa1i"   "1llinois" "Kentucky"

如上述代码所示,向量中每个元素被匹配到的第一个iI被替换成了数字1

还有一个相似的函数gsub(),它会替换所有匹配到的结果。

1> gsub("[Ii]""1", c("Hawaii""Illinois""Kentucky"))
2[1"Hawa11"   "1ll1no1s" "Kentucky"

在学习stringr之前,我们要讨论的最后一个函数是strsplit()函数。这是一个分割字符串的函数。

 1> two_s <- state.name[grep("ss", state.name)]
2> two_s
3[1"Massachusetts" "Mississippi"   "Missouri"      "Tennessee"
4
5> strsplit(two_s, "ss")
6[[1]]
7[1"Ma"        "achusetts"
8
9[[2]]
10[1"Mi"   "i"    "ippi"
11
12[[3]]
13[1"Mi"   "ouri"
14
15[[4]]
16[1"Tenne" "ee"

stringr

现在到了stringr 的部分,stringr数据优先的,因此第一个参数基本是字符串,第二个参数才是正则表达式。这个包里的大多数函数以str_开头。

首先介绍的是str_extract()函数,这个函数会提取字符串中能匹配正则表达式的部分。

1> str_extract("Camaro Z28""[0-9]+")
2[1"28"

str_order()函数会返回字符串向量排序后的索引。

1> str_order(c("p""e""n""g"))
2[12 4 3 1

例如上述代码中,排序后的向量顺序应该是e, g, n, p,该函数返回的就是相应的元素索引。

str_pad()函数用其他字符填充字符串,这在最终要将打印的字符串供人阅读时通常很有用。

1> str_pad("Thai", width = 8, side = "left", pad = "-")
2[1"----Thai"

str_to_title()函数类似于tolower()toupper()的集合,是将字符串转成Title的形式,即首字母大写,后面的字母小写。

1> str_to_title(c("CAPS""low""Title"))
2[1"Caps"  "Low"   "Title"

str_trim()函数的作用是去除字符串两侧的空格。

1> str_trim(" trim me ")
2[1"trim me"

最后,使用word()函数可以为字符串中的每个单词建立索引,并根据索引提取元素。就好像它是向量一样。

1> word("See Spot run."2)
2[1"Spot"

小结

主要是学习stringr包中的几个常用函数。

  • str_extract:提取正则表达式匹配的部分

  • str_order:对字符串向量进行排序,返回索引

  • str_pad:用其他字符填充字符串

  • str_to_title:将字符串转化标题的形式

  • str_trim:去除字符串两端的空格

  • word:对字符串建立索引,并提取


以上是关于R语言学习14-stringr包的主要内容,如果未能解决你的问题,请参考以下文章

如何从片段中调用 getSupportFragmentManager()?

r R有用的代码片段

r R有用的代码片段

r语言curve函数安装啥包

需要对特定 R 代码片段的解释

有人可以解释以下 R 代码片段吗? [关闭]