R语言 处理文本

R语言 处理文本

R编程语言用于统计计算,被许多数据挖掘者和统计学家用于开发统计软件和数据分析。它包括机器学习算法、线性回归、时间序列、统计推理等等。R及其库实现了各种各样的统计和图形技术,包括线性和非线性建模、经典、统计测试、时间序列分析、分类、聚类和其他。

任何写在双引号内的值在R中都被视为字符串。字符串是一个字符数组,这些字符的集合被存储在一个变量内。在内部,R将每个字符串都存储在双引号内,即使你用单引号创建它们。

R – 与文本打交道

可以通过这些方式来实现

  • 在R中使用内置类型
  • 使用Tidyverse模块
  • 使用regex和外部模块
  • 使用grep()。

方法1:使用内置类型

在这个方法中,我们使用一个内置类型来处理文本。

Variable_name <- "String"

例子

# R program to demonstrate
# creation of a string
a < -"hello world" print(a)

输出

"hello world"

以下是在处理字符串时需要遵循的规则清单

  • 字符串开头和结尾的引号应该都是双引号或单引号。它们不能混合使用。
  • 双引号可以插入到一个以单引号开始和结束的字符串中。
  • 单引号可以插入到以双引号开头和结尾的字符串中。

字符串操作

字符串操作是一个过程,用户被要求处理一个给定的字符串并使用/改变其数据。在R中,有不同的方法来操作字符串,具体如下。

  • 串联字符串 – paste()函数: 该函数用于在R中串联字符串,它可以接受n个参数来串联。

语法: paste(…., sep = ” “, collapse =NULL )

参数

  • ….. : 它用于传递n个参数来组合在一起。
  • sep : 它用于表示参数之间的分隔符。它是可选的。
  • collapse : 它用于删除两个字符串之间的空格,但不包括一个字符串中两个词的空格。

例子

# concatenate two strings
str1 <- "hello" 
str2 <- "how are you?" 
print(paste(str1, str2, sep = " ", collapse = "NULL"))

输出

"hello how are you?"
  • 格式化数字和字符串 – format()函数: 该函数用于将字符串和数字按指定的样式进行格式化。

语法: format(x, digits, nsmall, scientific, width, justify = c(“left”, “right”, “center”, “none”)

参数

  • x 是输入的向量。
  • digits 这里是显示的总位数。
  • nsmall 是小数点右边的最小数字数。
  • scientific 被设置为TRUE,以显示科学符号。
  • width 表示通过在开头填充空白来显示的最小宽度。
  • justify 是指字符串向左、向右或向中间显示。

例子

# formatting numbers and strings
  
# Total number of digits displayed.
# Last digit rounded off.
result < - format(69.145656789, digits=9)
print(result)
  
# Display numbers in scientific notation.
result < - format(c(3, 132.84521),
                  scientific=TRUE)
print(result)
  
# The minimum number of digits
# to the right of the decimal point.
result < - format(96.47, nsmall=5)
print(result)
  
# Format treats everything as a string.
result < - format(8)
print(result)
  
# Numbers are padded with blank
# in the beginning for width.
result < - format(67.7, width=6)
print(result)
  
# Left justify strings.
result < - format("Hello", width=8,
                  justify="l")
print(result)

输出

[1] "69.1456568"
[1] "3.000000e+00" "1.328452e+02"
[1] "96.47000"
[1] "8"
[1] "  67.7"
[1] "Hello   "
  • 计算字符串中的字符数 – nchar() 函数: 该函数用于计算字符串中的字符数和空格数。

语法: ncar(x)

参数

  • x 是这里输入的向量。

例子

# to count the number of characters
# in the string
a <- nchar("hello world")
print(a)

输出

[1] 11
  • **改变字符串的大小写 – toupper() & tolower() 函数: **这些函数用于改变字符串的大小写。

语法: toupper(x) 和 tolower(x)

参数

  • x 是输入的向量

例子

# Changing to Upper case.
a <- toupper("hello world")
print(a)
  
# Changing to lower case.
b <- tolower("HELLO WORLD")
print(b)

输出

"HELLO WORLD"
"hello world"
  • 提取字符串的一部分 – substring()函数: 该函数用于提取字符串的一部分。

语法: substring(x, first, last)

参数

  • x 是输入的字符向量。
  • first 是要提取的第一个字符的位置。
  • last 是要提取的最后一个字符的位置。

例子

# Extract characters from 1th to 3rd position.
c <- substring("Programming", 1, 3)
print(c)

输出

"Pro"

方法2:使用Tidyverse模块

在这个方法中,我们将使用Tidyverse模块,它包括数据科学工作流程中所需要的所有软件包,从数据探索到数据可视化。 stringr是一个库,有许多用于数据清理和数据准备任务的功能。它也是为处理字符串而设计的,有许多函数使这一过程变得简单。

我们正在使用这个文本进行处理

string <- c("WelcometoGeeksforgeeks!")

例1: 检测 字符串

在这个例子中,我们将使用 str_detect() 方法检测字符串。

语法: str_detect( string, “text in string”)

参数

  • string 是输入的向量
library(tidyverse)
  
str_detect(string, "geeks")

输出

TRUE

例2:定位字符串

在这个例子中,我们将使用 str_locate() 方法检测字符串。

语法: str_locate( string, “text in string”)

参数

  • string 是输入的向量
library(tidyverse)
  
str_locate(string, "geeks")

输出

start end
18 22

例3:提取字符串

在这个例子中,我们将使用 str_extract() 方法检测字符串。

语法: str_extract( string, “text in string”)

参数

  • String 是输入的矢量
library(tidyverse)
  
str_extract(string, "for")

输出

for

例四:替换字符串

在这个例子中,我们将使用 str_replace() 方法检测字符串。

语法: str_replace( string, “text in string”)

参数

  • String 是输入的向量
library(tidyverse)
  
str_replace(string, "toGeeksforgeeks", " geeks")

输出

'Welcome geeks!'

方法3:使用regex和外部模块

在这个方法中,我们使用regex,使用一个外部模块,比如stringr。

例子1:使用点选择字符

这里我们将使用点(.)来选择字符串中的字符。

string <- c("WelcometoGeeksforgeeks!")
  
str_extract_all(string, "G..k")

输出

Geek

Example 2: 使用 \D 选择字符串

\D是用来选择regex中的任何字符和数字。

str_extract_all(string, "W\\D\\Dcome")

输出

'Welcome'

方法4:使用grep()

grep()函数返回在向量中发现该模式的索引。如果该模式有多个出现,它会返回一个出现的索引列表。这非常有用,因为它不仅告诉我们模式的出现,还告诉我们它在矢量中的位置。

语法: grep(pattern, string, ignore.case=FALSE)

参数

  • pattern: 一个正则表达式模式。
  • string: 要搜索的字符向量。
  • ignore.case: 在搜索中是否忽略大小写。这里ignore.case是一个可选的参数,默认设置为FALSE。

例子1: 要找到字符串中特定单词的所有实例。

str <- c("Hello", "hello", "hi", "hey")
grep('hey', str)

输出

4

例2: 寻找字符串中特定单词的所有实例,不考虑大小写。

str <- c("Hello", "hello", "hi", "hey")
grep('he', str, ignore.case ="True")

输出

[1] 1 2 4

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程