【R语言】:基本数据管理(2)
操纵日期和缺失值
熟悉数据类型的转换
变量的创建和重编码
数据集和排序,合并与取子集
选入和丢弃变量
参考书籍:《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")
相关文章