Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R将数字转换为月份_R_Date - Fatal编程技术网

R将数字转换为月份

R将数字转换为月份,r,date,R,Date,我正试图建立一个时间序列。我的数据框每个月都列为一个数字。当我使用as.Date()时,我得到NA。如何将数字转换为其各自的月份(作为日期) 下面我们假设给出的月数是相对于第一个月基数的月数,因此,例如,第13个月将代表第1个月之后的12个月。此外,我们假设月份是唯一的,因为这是问题中的情况,并且因为它表示一个时间序列 1)让base作为识别基本年/月的yearmon类对象的年和月,并假设months是月数的向量,以1为基数,2为一个月后,依此类推。由于yearmon类表示一年和一个月,1月为年

我正试图建立一个时间序列。我的数据框每个月都列为一个数字。当我使用as.Date()时,我得到NA。如何将数字转换为其各自的月份(作为日期)


下面我们假设给出的月数是相对于第一个月基数的月数,因此,例如,第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)