답변:
format()
클래스의 객체에 메서드를 사용합니다 "yearmon"
. 다음은 귀하의 예시 날짜입니다 (제대로 생성되었습니다!).
date1 <- as.yearmon("Mar 2012", "%b %Y")
그런 다음 필요에 따라 날짜 부분을 추출 할 수 있습니다.
> format(date1, "%b") ## Month, char, abbreviated
[1] "Mar"
> format(date1, "%Y") ## Year with century
[1] "2012"
> format(date1, "%m") ## numeric month
[1] "03"
이들은 문자로 반환됩니다. 적절한 as.numeric()
경우 연도 또는 숫자 월을 숫자 변수로 원하면 줄 바꿈하십시오.
> as.numeric(format(date1, "%m"))
[1] 3
> as.numeric(format(date1, "%Y"))
[1] 2012
자세한 내용은 ?yearmon
및 ?strftime
참조-후자는 사용할 수있는 자리 표시 자 문자를 설명합니다.
vector
n 개의 요소 가 있으면 어떻게 1k 날짜를 하나에 넣을 수 vector
있습니까?
date1
날짜 벡터 일 수도 있습니다.
lubridate 패키지는 이런 종류의 일은 놀랍습니다 :
> require(lubridate)
> month(date1)
[1] 3
> year(date1)
[1] 2012
lubridate
패키지를 지원하지 않고 이것을 설치하려고 시도했고 연도 (날짜)를 사용했지만 연도 대신 날짜를 제공합니다. 형식이 "2015-05"인 날짜에만 작동합니다. -06 "?
OP가 zoo
여기에서 사용하고 있음을 알고 있지만 ts
동일한 문제에 대한 표준 솔루션을 검색하는 스레드를 발견했습니다 . 그래서 나는 zoo
무료 답변을 추가 할 것이라고 생각했습니다 ts
.
# create an example Date
date_1 <- as.Date("1990-01-01")
# extract year
as.numeric(format(date_1, "%Y"))
# extract month
as.numeric(format(date_1, "%m"))
다음을 사용할 수 있습니다 format
.
library(zoo)
x <- as.yearmon(Sys.time())
format(x,"%b")
[1] "Mar"
format(x,"%Y")
[1] "2012"
as.numeric(format(x, "%m"))
예를 들어 월을 숫자로 원합니다 .
큰 벡터의 경우 :
y = as.POSIXlt(date1)$year + 1900 # x$year : years since 1900
m = as.POSIXlt(date1)$mon + 1 # x$mon : 0–11
POSIXlt
동물원 패키지가 불필요하게 객체
질문은 예상되는 출력을 정확하게 나타내지 않았지만 월에는 월 번호 (1 월 = 1)를 원하고 연도에는 숫자 4 자리 연도를 원한다고 가정 한 다음 질문의 코드를 방금 실행했다고 가정합니다.
cycle(date1)
## [1] 3
as.integer(date1)
## [1] 2012