【R语言】:基本数据管理(2)

2020-06-17 00:00:00 数据 函数 代码 变量 向量
操纵日期和缺失值
熟悉数据类型的转换
变量的创建和重编码
数据集和排序,合并与取子集
选入和丢弃变量
参考书籍:《R语言实战(第2版)》第四章
本文代码运行环境为Windows版RStudio

日期值

日期值通常以字符串的形式输入到R中,然后通过函数as.Date()转化为以数值形式存储的日期变量,并且可以规定读取数据的格式,用法为 as.Date(x, "input_format") ,其中 x 是字符型数input_format 表示读取日期的格式(见下图,《R语言实战(第2版)》中截图)。


举例来说,todaydates <- as.Date("25/03/2017", "%m/%d%Y")将日期按照“月/日/年”的格式读取数据并储存。

函数Sys.Date()可以返回当天的日期(注意区分大小写,个S为大写,否则会报错),函数date()可以返回当前日期和时间

函数format()可以来输出指定格式的日期值,并且提取日期值中的某一部分,下图为该函数用法的截图。

比如,我们打算输出当前系统时间的非缩写月份数字表示的日期以及四位数的年份,通过对照开始的日期格式表,输入以下代码并运行

或者我们可以看见今天是周几,输入以下代码并运行

此外,可以看到函数format还有很多其他用法,这里就不逐个阐述了,如果之后遇到可以再仔细研究。

《R语言实战(第2版)》这本书上还提到R语言存储日期以1970年1月1日以后的天数表示的(比这一天早的日期表示为负数),所以可以计算两个日期之间的天数。比如,我们可以通过以下代码很容易得出新中国成立距当前的系统时间(2017年3月28日)有多少天。

此外,还可以使用函数 difftime() 来计算时间间隔,并以星期、天、时、分、秒来表示,其中tz表示time zone时区,是可选项,下图为该函数用法的截图。
举例说明,与上面类似,如果计算新中国成立距当前的系统时间(2017年3月28日)有多少个星期,可以通过以下代码实现
starttime <- as.Date("1949-10-01")
endtime <- as.Date(Sys.Date())
difftime(endtime, starttime, units = "weeks")

相关文章