2016-02-24 2 views
0

У меня есть два числовых столбца. Один содержит год, один месяц. Я хочу присоединиться к этим двум и создать столбец Year-month, который соответствует правильному типу Date. Чтобы дать задний план, причина, по которой я не могу сохранить его как тип символа, заключается в том, что я рисую эти точки. Они не сортируются должным образом, если они являются символами. Например, вместоСоедините два числовых столбца для создания переменной Year-month

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

Для того, чтобы быть соответствующим типом даты, вам нужен месяц, день, и год. Я обычно просто бросаю «1» там в течение дня, так как каждый месяц имеет первый день ...

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), ] 
0

Просто добавьте 01 в вашей пасте и использовать as.Date

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

Вы могли бы рассмотреть класс yearmon в пакете зоопарка:

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

Смежные вопросы