R 字符串基础操作
R 语言中的字符串以字符向量的形式存储,常用 character 类型表示。以下是一些基本操作:
# 创建字符串
str1 <- "Hello, R!"
str2 <- 'This is a string.'
# 检查类型
class(str1) # 输出 "character"
# 拼接字符串
paste(str1, str2, sep = " ") # 输出 "Hello, R! This is a string."
# 获取长度
nchar(str1) # 输出 8
字符串格式化
R 提供了多种格式化字符串的方法,例如 sprintf 和 format:
# 使用 sprintf 格式化
sprintf("Value: %.2f", 3.1415926) # 输出 "Value: 3.14"
# 使用 format 控制显示
format(12345.678, big.mark = ",", scientific = FALSE) # 输出 "12,345.68"
字符串拆分与提取
可以使用 strsplit 拆分字符串,或通过 substr 提取子串:
# 按分隔符拆分
strsplit("apple,banana,orange", ",")[[1]] # 输出 ["apple","banana","orange"]
# 提取子串
substr("R Programming", 3, 7) # 输出 "Progr"
正则表达式匹配
R 的 grep、grepl、sub 和 gsub 支持正则表达式:
# 查找匹配
text <- c("apple", "banana", "cherry")
grep("a", text) # 输出匹配的索引 [1, 2]
# 替换匹配
gsub("a", "X", "banana") # 输出 "bXnXnX"
字符串操作进阶
stringr 包提供了更便捷的字符串处理函数:
library(stringr)
# 提取匹配
str_extract("Price: $99.99", "\\d+\\.\\d+") # 输出 "99.99"
# 检测是否匹配
str_detect("R is fun", "fun") # 输出 TRUE
# 计数匹配次数
str_count("banana", "a") # 输出 3
字符串编码转换
R 支持不同编码格式的转换,如 UTF-8 和 ASCII:
# 转换编码
iconv("R语言", to = "ASCII//TRANSLIT") # 输出 "R yu yan"
# 检查编码
Encoding("R语言") # 输出 "UTF-8"
字符串与数据框操作
在数据框中处理字符串时,dplyr 和 stringr 组合非常高效:
library(dplyr)
df <- data.frame(text = c("apple", "banana", "cherry"))
df %>% mutate(length = str_length(text)) # 计算每行字符串长度
多语言字符串处理
R 可以处理 Unicode 字符,支持多语言文本分析:
# Unicode 字符示例
emoji <- "🌍 R Programming"
str_length(emoji) # 输出 15(R 中 1 个 emoji 可能占用多个字节)
以上示例涵盖了 R 字符串处理的常见场景,适用于文本分析、数据清洗和自动化报告生成等任务。
3691

被折叠的 条评论
为什么被折叠?



