楼主: 偏爱丨小汐
4737 14

[问答] R语言时间格式问题 [推广有奖]

  • 0关注
  • 0粉丝

已卖:7份资源

博士生

70%

还不是VIP/贵宾

-

威望
0
论坛币
2074 个
通用积分
0.1534
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
20979 点
帖子
74
精华
0
在线时间
588 小时
注册时间
2014-10-10
最后登录
2017-8-1

楼主
偏爱丨小汐 发表于 2017-2-23 11:56:59 |AI写论文
10论坛币
各位大神,请问有谁知道怎么样把R语言里面的类似于'201601'的字符串转换成日期类型,通过format函数转换得到的这个是字符串型的,我想知道有什么包或者函数可以将只有年月的字符串转换成Date类型,而且最好就是四位数的年加上两位数的月,中间没有分隔符,谢谢大家了!!

关键词:R语言 format FORMA form 日期类型 日期格式 字符串 格式转换

沙发
cheetahfly 在职认证  发表于 2017-2-23 13:11:08
lubridate::ymd(20170222)

藤椅
Whig 在职认证  发表于 2017-2-23 13:29:52
你该看看strptime函数

板凳
qiu435 发表于 2017-2-23 14:41:37
date变量一般都包好年-月-日,二楼的方法无法识别ymd("201601")的,因为没有day。用readr包可以手动设置识别的格式:readr::parse_date("201601","%Y%m") ,但是返回的值为 "2016-01-01",自动默认为每月的第一天。

报纸
hplcdadong 发表于 2017-2-23 22:14:42
library(zoo)
string=c('201701','201702','201703')
as.yearmon(string, format= "%Y%m")          #year_month format
as.Date(as.yearmon(string, format= "%Y%m"))    #date format

地板
偏爱丨小汐 发表于 2017-2-24 09:24:21
qiu435 发表于 2017-2-23 14:41
date变量一般都包好年-月-日,二楼的方法无法识别ymd("201601")的,因为没有day。用readr包可以手动设置识别 ...
谢谢了,但是我还是想得到只有年和月的时间格式,返回值是时间格式的'201601'

7
偏爱丨小汐 发表于 2017-2-24 09:25:39
hplcdadong 发表于 2017-2-23 22:14
library(zoo)
string=c('201701','201702','201703')
as.yearmon(string, format= "%Y%m")          #yea ...
zoo包里的yearmon函数加上as.Date转换得到的是2016-01-01这个形式的格式,但是我想得到的是没有day的时间格式,但是还是谢谢了

8
qiu435 发表于 2017-2-24 11:22:40
qiu435 发表于 2017-2-23 14:41
date变量一般都包好年-月-日,二楼的方法无法识别ymd("201601")的,因为没有day。用readr包可以手动设置识别 ...
暂时还不知道有没有这样的函数。替代的方法就是要买把年和月拆开 分成两个变量,要买直接用字符变量

9
偏爱丨小汐 发表于 2017-2-24 13:44:08
qiu435 发表于 2017-2-24 11:22
暂时还不知道有没有这样的函数。替代的方法就是要买把年和月拆开 分成两个变量,要买直接用字符变量
好的,那我就尽量试试看吧,谢谢啦

10
不懂不装懂 发表于 2017-2-24 17:45:37
  1. library(zoo)
  2. a<-paste(substring("201601",c(1,5),c(4,6)),collapse="-")
  3. as.yearmon(a)
复制代码

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-20 21:35