R将数字转换为月份
我正试图建立一个时间序列。我的数据框每个月都列为一个数字。当我使用as.Date()时,我得到NA。如何将数字转换为其各自的月份(作为日期)R将数字转换为月份,r,date,R,Date,我正试图建立一个时间序列。我的数据框每个月都列为一个数字。当我使用as.Date()时,我得到NA。如何将数字转换为其各自的月份(作为日期) 下面我们假设给出的月数是相对于第一个月基数的月数,因此,例如,第13个月将代表第1个月之后的12个月。此外,我们假设月份是唯一的,因为这是问题中的情况,并且因为它表示一个时间序列 1)让base作为识别基本年/月的yearmon类对象的年和月,并假设months是月数的向量,以1为基数,2为一个月后,依此类推。由于yearmon类表示一年和一个月,1月为年
下面我们假设给出的月数是相对于第一个月基数的月数,因此,例如,第13个月将代表第1个月之后的12个月。此外,我们假设月份是唯一的,因为这是问题中的情况,并且因为它表示一个时间序列 1)让
base
作为识别基本年/月的yearmon
类对象的年和月,并假设months
是月数的向量,以1为基数,2为一个月后,依此类推。由于yearmon
类表示一年和一个月,1月为年+0,2月为年+1/12,…,12月为年+11/12,我们有下面的代码来获得日期
向量。交替使用ym
,因为该型号已经有一年和一个月了
library(zoo)
# inputs
base <- as.yearmon("2020-01")
months <- 1:9
ym <- base + (months-1)/12
as.Date(ym)
## [1] "2020-01-01" "2020-02-01" "2020-03-01" "2020-04-01" "2020-05-01"
## [6] "2020-06-01" "2020-07-01" "2020-08-01" "2020-09-01"
2)或者,如果已知该系列是从2020年1月开始的连续月份,则我们可以忽略month
列并执行此操作(其中DF
和base
如上所示):
R Base有一个内置的月份数据集。请确保您的数字实际上是由
as.numeric()
表示的数字,然后您可以使用month.name[1]
来输出一月
因为您的月份不包含年份,我想知道为什么简单的as.numeric不起作用?请阅读标签页顶部的张贴说明。特别是使用dput
显示您的数据,如上所述。仅仅发布图像就意味着没有人可以在不重新键入数据的情况下使用您的数据。
library(zoo)
DF <- data.frame(month = 1:9, value = 11:19) # input
z <- with(DF, zoo(value, base + (month-1)/12)) # zoo series
tt <- as.ts(z) # ts series
library(zoo)
zz <- zooreg(DF$value, base, freq = 12) # zooreg series
as.ts(zz) # ts series
ts(DF$value, start = 2020, freq = 12)