作为一个程序员,你可能需要在数吨的字符串上工作。你会经常进行连接和分割它们。在 R 中出现了 strsplit() 函数。在以前的文章中,我们讨论了 paste() 函数来连接字符串。现在,让我们看看我们如何使用 strsplit() 来分割一个 字符串矢量。
strsplit() 是一个特殊的 R 函数,它将输入字符串矢量分成子字符串,让我们看看这个函数是如何运作的,以及使用 strsplit() 来执行 R 中的字符串分割的所有方法。
Strsplit() 函数语法
Strsplit():一个R语言函数,用来将字符串分成分割参数的子字符串。
1strsplit(x,split,fixed=T)
何处:
- X = 输入数据文件、矢量或
- Split = 将字符串分成所需的格式
- ** Fixed =** 匹配分割或使用正规表达式
使用 strsplit() 函数在 R - 实施
在本节中,让我们看看一个简单的示例,它显示了 strsplit() 函数的使用情况,在这种情况下,strsplit() 函数将给定的输入分割成一个字符串或值列表。
让我们看看它是如何工作的。
1df<-("R is the statistical analysis language")
2strsplit(df, split = " ")
- 输出 = *
1"R" "is" "the" "statistical" "analysis" "language"
我们做到了!以这种方式,我们可以很容易地分割数据中存在的字符串。 strsplit() 函数的最佳用例之一是编写字云。在这个过程中,我们需要大量的字符串来编写最流行的或重复的字符串。因此,为了从数据中获取字符串,我们使用这个函数返回字符串列表。
使用 strsplit() 函数与 delimiter
划界符一般来说是一个简单的符号,字符或值,它将数据中的单词或文本分开,在本节中,我们将研究各种符号作为划界符的使用。
1df<-"get%better%every%day"
2strsplit(df,split = '%')
- 输出 = *
1"get" "better" "every" "day"
在这种情况下,输入文本中有 % 作为划界器,现在我们关心的是删除划界器,并将文本作为字符串列表。 strsplit() 函数在这里做了同样的事情。
strsplit() 函数与 Regular Expression Delimiter
在本节中,我们将研究使用 [常规表达式]( / 社区 / 教程 / 常规表达式-in-r)的文本分割。
1df<-"all16i5need6is4a9long8vacation"
2strsplit(df,split = "[0-9]+")
- 输出 = *
1"all" "i" "need" "is" "a" "long" "vacation"
在本示例中,我们输入的数字在 0 到 9 之间,因此我们使用正规表达式为 [0-9]+ 通过删除数字来分割数据, strsplit() 函数将返回列表的字符串作为输出,如上所示。
3、在输入字符串中分割每个字符
到目前为止,我们已经发现了不同类型的分割给定的字符串。现在,如果我们想要分割字符串中的每个字符串呢?好吧,我们使用不同的分割参数的strsplit()函数来提取每个字符。
让我们来看看它是如何的。
1df<-"You can type q() in Rstudio to quit R"
2strsplit(df,split="")
- 输出 = *
1"Y" "o" "u" " " "c" "a" "n" " " "t" "y" "p" "e" " " "q" "(" ")" " " "i"
2"n" " " "R" "s" "t" "u" "d" "i" "o" " " "t" "o" " " "q" "u" "i" "t" " "
3"R"
使用 strsplit() 函数在 R 中分割日期
strsplit() 函数的另一个最佳应用是,分割日期. 这个用例非常酷,值得做。
1test_dates<-c("24-07-2020","25-07-2020","26-07-2020","27-07-2020","28-07-2020")
2test_mat<-strsplit(test_dates,split = "-")
3test_mat
- 输出 = *
1"24" "07" "2020"
2
3"25" "07" "2020"
4
5"26" "07" "2020"
6
7"27" "07" "2020"
8
9"28" "07" "2020"
您能看到好看的输出正确吗? 使用这个函数,我们可以从输入字符串或数据中创建许多分区,也可以将日期转换为 矩阵格式。
1matrix(unlist(test_mat),ncol=3,byrow=T)
- 输出 = *
1[,1] [,2] [,3]
2[1,] "24" "07" "2020"
3[2,] "25" "07" "2020"
4[3,] "26" "07" "2020"
5[4,] "27" "07" "2020"
6[5,] "28" "07" "2020"
您可以看到以上的结果,我们从分裂数据中创建了一个矩阵,所以组织数据对于进一步的过程非常重要,只是分裂文本没有任何意义,除非它被转换或组织成像上面的样本这样的可靠形式。
结论
好吧,我们在文章的末尾,我希望你现在对 R 中的 strsplit() 函数的工作和使用案例有了更好的了解,这个函数在分开字符串方面被广泛使用,最受欢迎。
** 更多研究:** R文档