如何在R中使用strsplit()函数?

时间:2020-02-23 14:43:55  来源:igfitidea点击:

作为程序员,您可能需要处理大量字符串。
您将经常执行串联和拆分操作。
R中带有strsplit()函数。
在上一篇文章中,我们讨论了paste()函数来连接字符串。
现在,让我们看看如何使用strsplit()分割字符串向量。

strsplit()是一个出色的R函数,它将输入字符串向量分成多个子字符串。
让我们看看该函数的工作原理以及使用strsplit()在R中执行字符串拆分的所有方法是什么。

Strsplit()函数语法

Strsplit():一种R语言函数,用于使用拆分参数将字符串拆分为子字符串。

strsplit(x,split,fixed=T)

其中:

  • X =输入数据文件,向量或者字符串。

  • 拆分=将字符串拆分为所需的格式。

  • 固定=匹配拆分或者使用正则表达式。

在R中使用strsplit()函数–实现

在本节中,我们来看一个简单的示例,该示例显示strsplit()函数的用例。
在这种情况下,strsplit()函数会将给定的输入拆分为字符串或者值的列表。

让我们看看它是如何工作的。

df<-("R is the statistical analysis language")
strsplit(df, split = " ")

输出=

"R" "is" "the" "statistical" "analysis" "language"

我们做到了!这样,我们可以轻松拆分数据中存在的字符串。
strsplit()函数的最佳用法之一是绘制词云。
在这种情况下,我们需要大量的字符串来绘制最受欢迎或者重复的单词。
因此,为了从数据中获取字符串,我们使用此函数返回字符串列表。

1.将strsplit()函数与定界符一起使用

分隔符通常是一个简单的符号,字符或者值,用于分隔数据中的单词或者文本。
在本节中,我们将研究使用各种符号作为分隔符。

df<-"get%better%every%day"
strsplit(df,split = '%')

输出=

"get" "better" "every"  "day"   

在这种情况下,输入文本将%作为分隔符。
现在,我们关心的是删除定界符并将文本作为字符串列表获取。
strsplit()函数在此处完成了相同的操作。
它删除了定界符,并将字符串作为列表返回。

2.带正则表达式定界符的strsplit()函数

在本节中,我们将研究使用正则表达式的文本拆分。
听起来不错?我们开始做吧。

df<-"all16i5need6is4a9long8vacation"
strsplit(df,split = "[0-9]+")

输出=

"all" "i" "need" "is" "a" "long" "vacation"

在此示例中,我们输入的数字位于0-9之间。
因此,我们使用正则表达式[0-9] +来通过删除数字来分割数据。
strsplit()函数将返回字符串列表作为输出,如上所示。

3.分割输入字符串中的每个字符

到现在为止,我们已经遇到了各种分割给定字符串的方法。
现在,如果我们想分割字符串的每个字符怎么办?好吧,我们使用带有不同split参数的strsplit()函数提取每个字符。

让我们看看它如何运作。

df<-"You can type q() in Rstudio to quit R"
strsplit(df,split="")

输出=

"Y" "o" "u" " " "c" "a" "n" " " "t" "y" "p" "e" " " "q" "(" ")" " " "i"
"n" " " "R" "s" "t" "u" "d" "i" "o" " " "t" "o" " " "q" "u" "i" "t" " "
"R"

4.在R中使用strsplit()函数拆分日期

strsplit()函数的另一个最佳应用是分割日期。
这个用例非常酷,值得做。
在本节中,让我们看看它是如何工作的。

test_dates<-c("24-07-2017","25-07-2017","26-07-2017","27-07-2017","28-07-2017")
test_mat<-strsplit(test_dates,split = "-")
test_mat

输出=

"24"   "07"   "2017"

"25"   "07"   "2017"

"26"   "07"   "2017"

"27"   "07"   "2017"

"28"   "07"   "2017"

您可以看到一个不错的输出,对吗?使用此功能,我们还可以根据输入字符串或者数据创建许多拆分。
您还可以将日期转换为矩阵格式。

matrix(unlist(test_mat),ncol=3,byrow=T)

输出=

[,1]  [,2]  [,3]  
[1,] "24" "07" "2017"
[2,] "25" "07" "2017"
[3,] "26" "07" "2017"
[4,] "27" "07" "2017"
[5,] "28" "07" "2017"

您可以从拆分数据创建矩阵的情况下看到以上结果。
对组织数据而言,这对于进一步处理非常重要。
除非将文本转换或者组织为一种可靠的形式(如上述示例),否则仅拆分文本是没有任何意义的。