R语言substring()函数完全指南:用法、实例与常见问题解答

在R中的substring()函数 – 需要了解的事情(第1部分,共3部分)

在R中,substring()函数被广泛应用于提取数据中存在的字符或操作数据。您可以轻松地从字符串中提取所需的字符,也可以替换字符串中的值。

大家好,希望你们都过得不错。今天我们来聚焦于R中的substring()函数。


substring()函数的语法

我们可以执行多种操作,比如提取值、替换值等等。为了实现这一点,我们可以使用substr()和substring()这样的函数。

substr(x,start,stop)
substring(x,first,last=1000000L)

其中:

  • x = 输入数据/文件
  • Start / First = 子字符串的起始索引
  • Stop / Last = 子字符串的结束索引

在R中使用substring()函数提取字符

好的,我希望你对语法有很清晰的理解。现在,让我们使用R中的substring()函数从字符串中提取一些字符。

#返回从第1个到第11个字符
df<-("Journal_dev_private_limited")
substring(df,1,11)

输出结果:”期刊_开发”

#返回从第1个到第7个字符
df<-("Journal_dev")
substring(df,1,7)

输出结果:”期刊”

恭喜你,你成功从给定的字符串中提取了数据。如你所见,在R中的substring()函数需要起始位置(first)和结束位置(last)作为参数,并对字符串进行索引,然后返回所需长度的子字符串。


在R中使用substring()函数替换

通过使用substring()函数,你还可以用你想要的值替换字符串中的值。听起来很有趣吧?那么让我们看看它是如何工作的。

#通过用空格替换下划线来返回字符串
df<-("We are_developers")
substring(df,7,7)=" "
df

输出结果:”我们是开发者”

#字符串替换
df<-("R=is a language made for statistical analysis")
substring(df,2,2)=" "
df

输出结果:”R是一个专为统计分析而开发的编程语言”

太棒了,你做到了!通过这种方式,你可以用你想要的值替换字符串中的字符。

在上述情况中,你已经用一个空格替换了”_”(下划线)和”=”(等号)。希望你现在理解得更清楚了。


使用substring()函数进行字符串替换

到目前为止,一切都很好!但是如果需要替换一些值,并且这些值需要在所有字符串中反映出来,该怎么办呢?

不要担心!我们可以替换这些值,并使它们在所有存在的字符串上反映出来。

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

# 将每个字符串的第4个字母替换为$
df<-c("Alok","Joseph","Hayato","Kelly","Paloma","Moca")
substring(df,4,4)<-c("$")
df

输出 = “阿洛$”、”约瑟夫$”、”海托$”、”凯利$”、”帕尔玛$”、”莫克$”

哦,发生了什么事?字符串中的每隔四个字母被替换成了”$”符号!

嗯,这就是 substring() 的用法。它可以用我们给定的值替换标记的位置。

在上述情况中,所有输入字符串中的每四个字母都被substring()函数替换成了”$”符号。这难以置信,不是吗?我觉得是的。你呢?


在R中使用substr()和str_sub()函数

我们已经专注于行,现在我们也将关注列中字符的提取。

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

我们可以创建一个数据框,其中包含两列样本数据,分别是技术和受欢迎程度。让我们从这些数据中提取一些特定的字符,这将很有趣。

# 创建数据框
df<-data.frame(Technologies=c("Datascience","machinelearning","Deeplearning","Artificalintelligence"),Popularity=c("70%","85%","90%","95%"))
df
           Technologies      Popularity
1           Datascience        70%
2       machinelearning        85%
3          Deeplearning        90%
4 Artificalintelligence        95%

是的,我们现在已经创建了一个数据框。让我们提取一些文本。为此,请在R中运行以下代码,使用substr()函数从Technologies列中的所有字符串提取第8-10个字符。

# 创建包含提取值的新列
df$Extracted_Technologies=substr(df$Technologies,8,10)
df

输出结果:

             Technologies       Popularity     Extracted_Technologies
1           Datascience_DS        70%                    enc
2       machinelearning_ML        85%                    lea
3          Deeplearning_DL        90%                    rni
4 Artificalintelligence_AI        95%                    ali

现在,你可以看到我们创建了一个新的列,其中包含提取的数据。就像这样,你可以通过指定索引值来提取数据。


R中使用str_sub()函数

我们已经了解了substr()函数的运行方式。现在,正如我之前提到的,我们将研究str_sub()函数及其提取方法。

让我们开始吧!

我们需要再次创建相同的数据框,其中包含技术及其受欢迎程度的数据。

df<-data.frame(Technologies=c("Datascience","machinelearning","Deeplearning","Artificalintelligence"),Popularity=c("70%","85%","90%","95%"))
df
           Technologies      Popularity
1           Datascience        70%
2       machinelearning        85%
3          Deeplearning        90%
4 Artificalintelligence        95%

嗯,让我们使用str_sub()函数,它将返回索引字符作为输出。在R中,可以通过多种方式获取/生成子字符串,这只是其中之一。

# 使用str_sub函数
df$Extracted_Technologies=str_sub(df$Technologies,10,15)
> df

正如您所见,str_sub()函数提取了索引值并返回如下所示的输出。

           Technologies   Popularity    Extracted_Technologies
1           Datascience        70%                     ce
2       machinelearning        85%                 arning
3          Deeplearning        90%                    ing
4 Artificalintelligence        95%                 intell

总结

是的,获取或生成给定字符串的子字符串是相当简单的任务。感谢像substr()、substring()和str_sub()这样的函数,使子字符串操作变得有趣且令人兴奋。

暂时就这些。别忘了在计算中充分利用这个令人惊叹的功能。祝您愉快地进行子字符串操作!

更多学习资源:R文档

bannerAds