我有两个数字列。一个包含一年,一个月一个数字。我想加入这两个并创建一个具有正确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))
答案 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= '-'))