这篇“R语言字符串和时间格式化的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“R语言字符串和时间格式化的方法是什么”文章吧。
字符串格式化
R语言字符串可用单引号' '或双引号" "来表示,二者唯一的区别是,单引号字符串不含单引号,双引号字符串不含双引号。
通过format函数可以实现字符串的格式化输出,其语法格式为
format(x, digits, nsmall, scientific, width, justify = c("left", "right", "centre", "none"))
其中
x 输入对向量
digits 显示的位数
nsmall 小数点右边显示的最少位数
scientific 设置科学计数法
width 通过开头填充空白来显示最小的宽度
justify 设置位置,显示可以是左边、右边、中间等。
示例如下
> format(23.123456789, digits = 9)[1] "23.1234568"> format(c(6, 13.14521), scientific = TRUE)[1] "6.000000e+00" "1.314521e+01"> format(23.47, nsmall = 5)[1] "23.47000"
转义字符
R语言支持字符转义,例如换行、回车、制表位之类的,但在屏幕上显示的时候,需要通过函数cat而非print,二者差别如下
> print('asdf\r\nasdf')[1] "asdf\nasdf"> cat('asdf\nasdf')asdfasdf
其中\n表示回车,R语言中可用的转义字符如下
\t 制表位
\n 回车
\\ 即\
\'或\" 分别在单引号字符串和双引号字符串中用于引号转义
此外,\a可以发出提示音,有了这个,可以更加便捷地起到提醒作用。但并不特别推荐使用cat("\a"),而推荐用相同功能的alarm()函数。
由于\被用于转义,所以在输入路径的时候,要记得写成\\,或者用反斜杠/。
时间格式化
通过函数Sys.Date可以获取当前日期,通过Sys.time()可以获取当前时间,这个时间可以直接print,并得到字符串输出
> t0 <- Sys.time()> d0 <- Sys.Date()> print(d0)[1] "2023-03-15"> print(t0)[1] "2023-03-15 13:34:54 CST"
如果不喜欢这个输出格式,可以format来更改其输出格式
> format(t0, "%H:%M:%S %d/%m/%Y", tz="UTC")[1] "05:34:54 15/03/2023"
其中,tz表示时区。原本CST时区中的13点,变成UTC之后成了5点。
%H, %M, %S, %d, %m, %Y分别表示时、分、秒,日期、月份、年份,其他格式调整如下表所示
符号 | 含义 | 示例 | 符号 | 含义 | 示例 |
---|---|---|---|---|---|
%d | 数值天 | 01-31 | %m | 数值月份 | 00-12 |
%a | 缩写星期 | Mon | %A | 完整的星期 | Monday |
%b | 缩写月份 | Jan | %B | 月份 | January |
%y | 两位数年份 | 07 | %Y | 四位数年份 | 2007 |
字符串函数
R语言提供了一些字符串函数,如下表所示
类别 | 函数 |
---|---|
大小写转换 | 转大写toupper;转小写tolower |
截取字符串 | substring;substr |
组合与分割 | 拼接paste;分割strsplit |
> tStr <- format(t0, "%H:%M:%S %d/%m/%Y", tz="UTC")> tStr[1] "05:34:54 15/03/2023"> strsplit(tStr, ':')[[1]][1] "05" "34" "54 15/03/2023"> paste(tStr, tStr)[1] "05:34:54 15/03/2023 05:34:54 15/03/2023"> substring(tStr, 0, 15)[1] "05:34:54 15/03/"> substring(tStr, 0, 5)[1] "05:34"> substr(tStr, 0, 15)[1] "05:34:54 15/03/"> substr(tStr, 0, 5)[1] "05:34"
以上就是关于“R语言字符串和时间格式化的方法是什么”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。