加入两个数字列以创建年月变量

时间:2016-02-24 18:37:47

标签: r

我有两个数字列。一个包含一年,一个月一个数字。我想加入这两个并创建一个具有正确Date类型的Year-month列。为了给出背景,我不能将其保留为字符类型的原因是我正在绘制这些点。如果它们是char,它们就不能正确排序。例如,而不是

2015 1
2015 2
...
2015 12

我们会将排序顺序视为

2015 1
2015 10
2015 11
2015 12
...

因此,如果某种角色黑客与转换为Date类型的工作方式相同,那么它也会起作用。

对不起这个相对简单的问题。我对R很好,但很难格式化。

重新创建的示例代码

month<-as.character(seq(1,12,1))
year<-'2015'

df<-data.frame(paste(year,month))

3 个答案:

答案 0 :(得分:3)

要成为合适的日期类型,您需要一个月,日和一年。我通常只是扔一个&#34; 1&#34;在那里,因为每个月都有第一天...

df <- data.frame(year=c("2015", "2015", "2014"),
                 month=c("4", "2", "9"),
                 stringsAsFactors=FALSE)
df$date <- as.Date(paste(df$month, "01", df$year, sep="_"), format="%m_%d_%Y")
df <- df[order(df$date), ]

答案 1 :(得分:1)

您可以考虑动物园包中的yearmon类:

library(zoo) zoo::as.yearmon(paste(year, month, sep='-'))

答案 2 :(得分:0)

只需在粘贴中添加01并使用as.Date

即可
as.Date(paste(year, month, '01', sep= '-'))