2014-04-09 4 views
1

나는이 분명히 쉽게 문제를 해결하기 위해 애 쓰고있다, 나는 다음과 같은 열 이름과 데이터 프레임이 : 당신이 볼 수 있듯이데이터 프레임

names <- c("2013-1", "2013-10", "2013-11", "2013-12", "2013-2", 
"2013-3", "2013-4", "2013-5", "2013-6", "2013-7", "2013-8", "2013-9", 
"2014-1", "2014-2", "2014-3") 

는, 열 이름은을 날짜 (R로 문자로 인식) 및 각 열이 이전 것 다음에 나오는 달과 일치하도록 열을 재정렬해야합니다 (예 : R). 2013-1, 2013-2, 2013-3 ... R은 열 이름을 단어가 아닌 날짜로 간주하므로 2013-2 이전의 2013-10과 달리 다르게 정렬됩니다.

내가 사용 날짜에 열 이름을 변환하려고 :

as.Date(names, format="%Y-%m") 

을하지만 R 분명히이 날짜 형식을 인식하지 못하는 내가 NA의 수. 나는 아무리 노력해도이 주문에 여전히 고착되어있어 어떤 도움을 주시면 감사하겠습니다.

답변

2

또한 zoo 패키지 as.yearmon에서보고가있을 수 있습니다. 도움말 텍스트 : "yearmon은 월간 데이터를 나타내는 클래스입니다."

library(zoo) 
x <- as.yearmon(names, format = "%Y-%m") 
x 

# sort and format output according to taste, e.g. 
format(sort(x), "%Y-%m") 
# [1] "2013-01" "2013-02" "2013-03" "2013-04" "2013-05" "2013-06" "2013-07" "2013-08" "2013-09" 
# [10] "2013-10" "2013-11" "2013-12" "2014-01" "2014-02" "2014-03" 
+0

감사합니다. 내 문제를 더 빠르고 깨끗하게 해결하기 때문에 대답으로 선택했습니다. – RabidHealer

2

as.Date(paste(names, "-01", sep=""), format="%Y-%m-%d") 

을 시도하고 R이 날짜로 표시되어야합니다 감사합니다.

편집 : 당신이 당신의 원래 형식을 유지하지만, 제로 9 일 사이를 삽입 할 경우 strftime를 사용할 수 있습니다

strftime(as.Date(paste(names, "-01", sep=""), "%Y-%m-%d"), "%Y-%m") 
+0

정확히 작동하지 않지만 원하는대로 작동하지 않습니다. 수동으로 요일을 추가하면 R이 yyyy-mm 날짜 형식을 이해할 수 없습니다. 가능하면 원래 형식을 유지하는 것이 좋습니다. – RabidHealer

관련 문제