用R进行自然语言处理的第一课,字符串的查阅

下面内容摘录自《R 语言与数据科学的终极指南》专栏文章的部分内容,每篇文章都在 5000 字以上,质量平均分高达 94 分,看全文请点击下面链接

4章13节:R语言中Stringr扩展包进行字符串的查阅、大小转换和排序-CSDN博客文章浏览阅读3次。stringr包建立在stringi包的基础上,后者是一个底层的字符串处理工具。stringi提供了强大的字符串处理能力,但由于其接口复杂,对于初学者和商业数据分析师来说,使用起来可能不够直观。stringr的设计初衷就是通过提供一个更为简洁和易用的API来降低字符串处理的学习曲线,使得数据分析师可以更加专注于数据本身,而不是字符串操作的复杂细节。https://blog.csdn.net/2301_79425796/article/details/141215632

欢迎订阅我们专栏

.......前面部分请点击上面链接看原文

Tidyverse 生态系统是由 Hadley Wickham 及其团队开发的 R 语言软件包集合,这些包共享基础设计理念、语法和整洁的数据结构,旨在简化数据科学任务。它包括一组相互关联的工具,可用于数据操作、可视化和建模等。Tidyverse 具有一致性,包遵循一致的接口,使用户更易学习和应用数据操作技术;具有简单性,去除不必要选项,专注常用功能简化数据处理任务;还能与 R 生态系统集成,与其他 R 包无缝协作增强数据分析工作流。其核心包提供了建模、转换和可视化数据的功能,如用于数据可视化的 ggplot2、用于数据操作和转换的 dplyr、用于整理数据的 tidyr、用于读取数据的 readr、用于函数式编程的 purrr、用于创建整洁数据框的 tibble、用于字符串操作的 stringr、用于处理因子的 forcats 。此外,还包含用于文本分析的 tidytext、机器学习的 tidymodels 以及金融操作的 tidyquant 等辅助包。

一、字符串的查阅

1、字符串长度的统计

字符串长度的统计在文本分析和数据清理时经常被使用。stringr扩展包中的str_length()函数能够轻松实现这一操作。它返回每个字符串中字符的数量。

# 加载stringr扩展包
library(stringr)

# 定义字符向量
chr.data <- c("R", "for", "clinical", "data", "science", NA)

# 统计字符串长度
str_length(chr.data)

输出结果:

[1]  1  3  8  4  7 NA

在上面代码中,str_length()函数统计了字符向量chr.data中每个元素的长度,并返回一个数值向量。需要注意的是,对于NA值,str_length()会返回NA,而不是一个数值。

2、提取字符串的子串

在数据处理中,我们经常需要从字符串中提取部分内容。stringr提供的str_sub()函数能够帮助我们从字符串中提取指定范围内的子串。

# 定义字符串
mgh <- "Massachusetts General Hospital"

# 提取前六位的子串
str_sub(mgh, 1, 6)

输出结果:

[1] "Massac"

通过str_sub()函数,我们可以指定起始和结束的位置(索引从1开始),从而提取所需的子字符串。在此示例中,提取的是字符串mgh的前六个字符。

3、获取字符串中的单词

有时候,我们需要从字符串中提取特定位置的单词。stringr包中的word()函数可以实现这一需求。

# 加载stringr扩展包
library(stringr)

# 定义字符串变量
mgh <- "Massachusetts General Hospital"

# 提取字符串中的第二个单词
word(mgh, 2)

输出结果:

[1] "General"

word()函数可以轻松提取字符串中指定位置的单词。上例中,我们提取了mgh字符串中的第二个单词"General"

4、复杂应用示例

假设我们有一个包含病人姓名和诊断信息的字符向量,我们希望进行如下操作:

  1. 统计每个病人姓名的字符长度。
  2. 提取诊断信息中的关键字。
  3. 从诊断信息中提取病人病情的描述部分。

以下是一个应用场景及代码示例:

# 加载stringr扩展包
library(stringr)

# 定义病人数据
patients <- c("John Doe", "Alice Smith", "Robert Brown", NA)
diagnoses <- c("Diabetes Type 2, requires insulin", "Hypertension, monitor blood pressure", "Asthma, use inhaler regularly", "Cancer, chemotherapy recommended")

# 1. 统计每个病人姓名的字符长度
name_lengths <- str_length(patients)

# 2. 提取诊断信息中的关键字(例如,“Diabetes”,“Hypertension”等)
# 提取关键字的子串,从诊断信息的第一个单词开始提取到第一个逗号
diagnosis_keywords <- str_sub(diagnoses, 1, str_locate(diagnoses, ",")[,1] - 1)

# 3. 从诊断信息中提取病人病情的描述部分(例如,“requires insulin”,“monitor blood pressure”等)
# 提取诊断信息中逗号后的描述部分
diagnosis_descriptions <- str_sub(diagnoses, str_locate(diagnoses, ",")[,1] + 2)

# 输出结果
print(paste0("病人姓名的字符长度:", paste(name_lengths, collapse = ", ")))
print(paste0("诊断信息中的关键字:", paste(diagnosis_keywords, collapse = ", ")))
print(paste0("病人病情的描述部分:", paste(diagnosis_descriptions, collapse = ", ")))

输出结果:

> print(paste0("病人姓名的字符长度:", paste(name_lengths, collapse = ", ")))
[1] "病人姓名的字符长度:8, 11, 12, NA"
> print(paste0("诊断信息中的关键字:", paste(diagnosis_keywords, collapse = ", ")))
[1] "诊断信息中的关键字:Diabetes Type 2, Hypertension, Asthma, Cancer"
> print(paste0("病人病情的描述部分:", paste(diagnosis_descriptions, collapse = ", ")))
[1] "病人病情的描述部分:requires insulin, monitor blood pressure, use inhaler regularly, chemotherapy recommended"

二、 字符串大小写的转换

字符串的大小写转换在文本标准化、数据清理以及显示格式调整时非常有用。stringr包提供了一系列函数,用于实现大小写的转换,包括将字符串转换为全大写、全小写、标题风格和句子风格。

1、字符串转换为全大写

str_to_upper()函数用于将字符串中的所有字母转换为大写字母。

 .......后面部分请看原文

欢迎订阅我们专栏,深度系统地学习R语言。 

为帮助大家更出色地掌握临床统计、数据挖掘以及人工智能建模的入门知识和应用,由于众多同学在计算机编程上经验欠缺,特此开设《R 语言与数据科学的终极指南》专栏。该专栏每周至少会定期更新三篇,直到整个专栏更新完成。每篇文章都在 5000 字以上,质量平均分高达 94 分。要提醒大家的是,每结束一个章节,专栏的优惠力度就会减小,当下正是订阅的最佳优惠时段,诚邀各位积极订阅!

专栏《R 语言与数据科学的终极指南》链接:https://blog.csdn.net/2301_79425796/category_12729892.html?spm=1001.2014.3001.5482

  • 15
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据科学和人工智能兴趣组

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值