R语言教程4:字符串和时间格式化

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')
asdf
asdf

其中 \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"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微小冷

请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值