Menu
CoddyTech

字符串操作

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!”
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

challenge icon

挑战

简单

使用 stringr 包中的字符串处理技术,创建一个处理电子邮件地址列表的函数。该函数应执行以下操作:

  1. 从每个电子邮件地址中提取用户名(@ 前面的部分)
  2. 将用户名中的所有数字替换为下划线(_)
    • 使用 str_replace_all() 和模式 \\d 替换所有数字。例如:str_replace_all(username, "\\d", "_")
  3. 将每个用户名的首字母大写
    • 你可以使用 str_to_title() 函数。它会将字符串中每个单词的首字母大写。
  4. 删除处理后用户名开头或结尾的空格
  5. 将处理后的用户名作为逗号分隔的字符串返回
    • 使用带有 collapse 参数的 str_c() 来连接用户名。例如:str_c(usernames, 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 在线编译器