字符串操作
Coddy R 中的数据处理 课程的第 12 课,共 14 课。
stringr 包提供了一组全面的函数,用于处理字符串。
加载 stringr 包
library(stringr)模式匹配
str_detect() 函数会检查字符串中是否存在某个模式:
text <- c("apple", "banana", "cherry")
str_detect(text, "an") # 返回:FALSE TRUE FALSE替换字符串
str_replace() 函数会替换模式首次出现的位置:
text <- "Hello world"
str_replace(text, "world", "R") # 返回:"Hello R"拆分字符串
使用 str_split() 将字符串拆分为字符向量:
text <- "apple,banana,cherry"
str_split(text, ",") # 返回一个列表:list("apple", "banana", "cherry")去除空白
使用 str_trim() 去除开头和结尾的空白:
text <- " Hello, R! "
str_trim(text) # 返回:“Hello, R!”这节课包含一个小测验。开始学习即可作答,并记录你的进度。
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
挑战
简单使用 stringr 包中的字符串处理技术,创建一个处理电子邮件地址列表的函数。该函数应执行以下操作:
- 从每个电子邮件地址中提取用户名(@ 前面的部分)
- 将用户名中的所有数字替换为下划线(_)
- 使用
str_replace_all()和模式\\d替换所有数字。例如:str_replace_all(username, "\\d", "_")
- 使用
- 将每个用户名的首字母大写
- 你可以使用
str_to_title()函数。它会将字符串中每个单词的首字母大写。
- 你可以使用
- 删除处理后用户名开头或结尾的空格
- 将处理后的用户名作为逗号分隔的字符串返回
- 使用带有 collapse 参数的
str_c()来连接用户名。例如:str_c(usernames, collapse = ", ")
- 使用带有 collapse 参数的
亲手试试
# 读取输入
con <- file("stdin", "r")
email_list <- suppressWarnings(readLines(con))
suppressPackageStartupMessages(library(stringr))
process_emails <- function(email_list) {
# 将电子邮件列表拆分为单个电子邮件地址
emails <- str_split(email_list, ",\\s*")[[1]]
# TODO:在下方编写代码,处理电子邮件地址
# 1. 提取用户名
# 2. 将数字替换为下划线
# 3. 将首字母改为大写
# 4. 去除首尾空白字符
# 5. 用逗号连接处理后的用户名
# 用于存放处理后用户名的占位符
processed_usernames <- ""
# 将处理后的用户名作为逗号分隔的字符串返回
return(processed_usernames)
}
# 调用函数并输出结果
result <- process_emails(email_list)
cat(result)R 中的数据处理中的所有课
自己练习: R 在线编译器