319 字
1 分钟
R语言字符串与日期处理
字符串处理
使用基础函数进行分割和拼接:
# 分割strsplit("2021年2月28日", split = "年|月|日") # [[1]] "2021" "2" "28" ""
# 拼接:paste 有空格,paste0 无空格paste("R语言", "要用心体会", sep = ",") # [1] "R语言,要用心体会"paste0(1:12, c("st", "nd", "rd", rep("th", 9)))正则表达式
R 支持强大的正则表达式,常用 grep()、sub()、gsub() 进行模式匹配和替换。
txt <- c("The", "software", "is", "free")grep("^s", txt, value = TRUE) # 匹配以 s 开头的字符串grep("e$", txt, value = TRUE) # 匹配以 e 结尾的字符串
# 替换sub(" +$", "", " 10am ") # 去除尾部多余空格日期处理
today <- Sys.Date() # 取当前系统日期gtd <- as.Date("2024-10-14") # 字符串转日期格式
# 格式化输出format(today, "%Y年%m月%d日")
# 计算日期差difftime(today, gtd, units = "days")进阶补充:底层性能与高级正则
- 全局字符串池(Global String Pool):R 在内部使用一个哈希表来存储所有的唯一字符串(CHARSXP)。这意味着即使一个包含百万条相同字符串的向量,在内存中也只存储一份实际字符数据,极大地节省了内存。
- 正则表达式的零宽断言(Lookaround):在清洗极其复杂的文本时,建议开启
perl=TRUE,从而使用 PCRE 引擎支持的前向断言(?=...)和后向断言(?<=...),实现不消耗字符的精准匹配。 - POSIXct 与 POSIXlt 的本质差异:
POSIXct底层存储的是自 1970 年以来的秒数(一个连续的数值向量),适合放在数据框中;而POSIXlt实际上是一个包含年、月、日、时、分、秒的列表(List),主要用于提取特定时间元素。在数据框中直接使用POSIXlt会导致结构异常。
分享
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时
相关文章 猜你想看
1
R语言基础数据结构
管理统计与R实训 本文将带你了解 R 语言中最基础也是最重要的数据结构:向量、矩阵、数组、数据框、因子和列表。掌握它们是处理任何复杂数据的第一步。
2
R语言数据导入导出与基础绘图
管理统计与R实训 数据分析的第一步是把数据“搬”进 R 里,分析结束后再输出结果。同时,利用 R 的基础图形系统,我们可以快速生成散点图并进行探索性分析。
3
R语言描述统计分析核心指南
管理统计与R实训 拿到数据后,首先要用描述统计量来把握数据的整体面貌:集中趋势、离散程度以及分布形态。
4
R语言方差分析 (ANOVA)
管理统计与R实训 T检验只能对比两组差异,如果要看 3 组及以上的分类变量对连续变量的影响,就需要用到方差分析(ANOVA)。
5
概率分布与参数估计
管理统计与R实训 正态分布和 t 分布是统计学中最重要的两种分布。在 R 中,这类分布都有标准的函数前缀(p, q, d, r)用于计算概率、分位数和生成随机数。

