R3—日期处理
一. 问题引入
下面是一个房地产价格数据,现在想要提取2008年6月份的数据进行分析,在R中该如何操作呢?
city price bedrooms squarefeet lotsize latitude longitude month
1 San Francisco 1470000 3 2424 NA 37.75651 -122.4469 2008-06-01
2 San Francisco 385000 0 1304 2143 37.71010 -122.4216 2009-06-01
3 San Francisco 1043000 2 1400 NA 37.77984 -122.3928 2009-06-01
4 San Francisco 560000 2 1149 NA 37.78696 -122.4225 2009-01-01
5 San Francisco 419000 NA NA NA 37.78696 -122.4225 2008-03-01
6 San Francisco 552000 NA NA NA 37.78430 -122.3909 2009-03-01
# 这里就涉及到R的日期处理方法!
二. R日期处理方法简介
# 1)取出当前日期
> Sys.Date()
[1] "2015-04-20"
> date()
[1] "Mon Apr 20 15:46:32 2015"
#2)字符串转化为日期
as.Date()可以将一个字符串转换为日期值,默认格式是yyyy-mm-dd。
##在R中,日期类型其实是double类型,实际存储的是从1970年1月1日以来的天数!
> as.Date('2015-4-20') ##得到"2007-02-01",显示为字符串,但实际是用double存储的!
>as.double(as.Date("1970-01-01")) #结果为0,是从1970年1月1日以来的天数。## 可以把定制的日期字符串转换为日期型
> as.Date("2015年4月20日", "%Y年%m月%d日")
[1] "2015-04-20"
#3)日期转化为字符串
> today <- Sys.Date()
> format(today, "%Y年%m月%d日")
[1] "2015年04月20日"
$4)计算日期差
由于日期内部是用double存储的天数,所以是可以相减的。
> today<-Sys.Date()
> age30<- as.Date("2020-01-01")
> age30-today
Time difference of 1717 days
@@@离我30岁只有1717天了啊!
##用difftime()函数可以计算相关的秒数、分钟数、小时数、天数、周数
difftime(today, age30, units="weeks") #还可以是“secs”, “mins”, “hours”, “days”
> difftime(today, age30, units="weeks")
Time difference of -245.2857 weeks
三. 需求解答
> dat<-subset(x = dat,subset =(as.double(as.Date(dat$month))>=14031 & as.double(as.Date(dat$month))<=14060)) #as.Date将字符型month转化成日期型,as.double转化成double型!
> head(dat)
city price bedrooms squarefeet lotsize latitude longitude month
1 San Francisco 1470000 3 2424 NA 37.75651 -122.4469 2008-06-01
24 San Francisco 815000 NA NA NA 37.74917 -122.4500 2008-06-01
29 San Francisco 548000 2 1100 1792 37.71153 -122.4623 2008-06-01
33 San Francisco 400000 NA NA NA 37.79035 -122.4126 2008-06-01
59 San Francisco 1795000 3 1028 NA 37.80241 -122.4186 2008-06-01
88 San Francisco 2300000 10 6600 2738 37.77007 -122.4320 2008-06-01
R3—日期处理的更多相关文章
- atitit.日期,星期,时候的显示方法ISO 8601标准
atitit.日期,星期,时候的显示方法ISO 8601标准 1. ISO 86011 2. DAte日期的显示1 2.1. Normal1 2.2. 顺序日期表示法(可以将一年内的天数直接表示)1 ...
- 使用指定格式的字符串变量格式化日期字符串,DateAndTime取时间间隔
private void btn_GetTime_Click(object sender, EventArgs e) { lab_time.Text = DateTime.Now.ToString(& ...
- 建议大家使用Java 8 的日期、时间,而非java.util.Date
建议大家使用Java 8 的日期.时间,而非java.util.Date. 详细原因见:如何在Java 8中愉快地处理日期和时间 总结一下就是, java.util.Date 太乱,如 月份从0开始. ...
- NSIS限制程序运行次数和使用日期
#七八年前写着玩的小东西,实际用途不大,但对刚接触nsis的新手来说应该还有一些帮助,包括创建控件,获取系统时间等,与诸位共勉! !system '>blank set/p=MSCF<nu ...
- 日期格式代码出现两次的错误 ORA-01810
错误的原因是使用了两次MM . 一.Oracle中使用to_date()时格式化日期需要注意格式码 如:select to_date('2005-01-01 11:11:21','yyyy-MM-dd ...
- 一起学微软Power BI系列-使用技巧(5)自定义PowerBI时间日期表
1.日期函数表作用 经常使用Excel或者PowerBI,Power Pivot做报表,时间日期是一个重要的纬度,加上做一些钻取,时间日期函数表不可避免.所以今天就给大家分享一个自定义的做日期表的方法 ...
- excel 日期/数字格式不生效需要但双击才会生效的解决办法
原因: Excel2007设置过单元格格式后,并不能立即生效必须挨个双击单元格,才能生效.数据行很多.效率太低. 原因:主要是一些从网上拷贝过来的日期或数字excel默认为文本格式或特殊-中文数字格式 ...
- Jquery mobiscroll 移动设备(手机)wap日期时间选择插件以及滑动、滚动插件
Jquery Mobiscroll是一个用于触摸设备(Android phones, iPhone, iPad, Galaxy Tab)的日期和时间选择器jQuery插件.以及各种滑动插件 可以让用户 ...
- C# DateTime日期格式化
在C#中DateTime是一个包含日期.时间的类型,此类型通过ToString()转换为字符串时,可根据传入给Tostring()的参数转换为多种字符串格式. 目录 1. 分类 2. 制式类型 3. ...
随机推荐
- 软件图书,偏.net方向
深入理解计算机系统(原书第2版) 作者:Randal E.Bryant:1981年在麻省理工学院获计算机科学博士学位,现任美国卡内基·梅隆大学计算机学院院长 内容: 深入浅出地介绍了处理器.编译器.操 ...
- 求最大子串和以及其中一个子串(java)
public static void getMaxSum(int[] a){ int max = a[0]; int sum = a[0]; int temp = 0; int start = 0; ...
- FTP渗透测试
在这篇文章中,我们将学习如何在CentOS机器配置ProFTPD的服务.之后,我们将进行渗透测试,以评估FTP服务的安全性,那么我们也将学习漏洞的对策. 在CentOS Linux机器的安装和配置FT ...
- linux mysql表名大小写
1.用ROOT登录,修改/etc/my.cnf 2.在[mysqld]下加入一行:lower_case_table_names=1 0:区分大小写,1:不区分大小写 3.重新启动数据库即可
- WebUploader 设置单个文件上传
1.导入控件样式文件 <link rel="stylesheet" type="text/css" href="__PUBLIC__/stati ...
- ZOJ2725_Digital Deletions
题意是这样的,一开始给你一串数字,两个人轮流操作,操作可以分为两种. 1.每次修改一个数字,使其变为一个小于当前的非负数. 2.移除中间的某一个0以及0右边的所有数字. 使得所有数字消失的游戏者获胜. ...
- Django 2.0 学习(16):Django ORM 数据库操作(下)
Django ORM数据库操作(下) 一.增加表记录 对于表单有两种方式: # 方式一:实例化对象就是一条表记录france_obj = models.Student(name="海地&qu ...
- 中小型园区网络的基本部署之动手划分vlan
在计算机网络中,一个二层网络可以被划分为多个不同的广播域,一个广播域对应了一个特定的用户组,默认情况下这些不同的广播域是相互隔离的.不同的广播域之间想要通信,需要通过一个或多个路由器.这样的一个广播域 ...
- Luogu 4917 天守阁的地板(莫比乌斯反演+线性筛)
既然已经学傻了,这个题当然是上反演辣. 对于求积的式子,考虑把[gcd=1]放到指数上.一通套路后可以得到∏D∏d∏i∏j (ijd2)μ(d) (D=1~n,d|D,i,j=1~n/D). 冷静分析 ...
- C++解析(3):布尔类型与三目运算符
0.目录 1.布尔类型 2.三目运算符 3.小结 1.布尔类型 C++中的布尔类型: C++在C语言的基本类型系统之上增加了bool C++中的bool可取的值只有true和false 理论上bool ...