내가 사용하는lubridate
패키지하고 적용하는달
기능을 추출 한 달에서 날짜입니다. I ran str 명령에는 날짜 필드고
Factor w/ 9498 levels "01/01/1979","01/01/1980",..: 5305 1 1 1 1 1 1 1 1 1 ...
> v1$Date<-month(v1$Date)
Error in as.POSIXlt.character(as.character(x), ...) :
character string is not in a standard unambiguous format
의 예는 다음과 같은 내 프레임 데이터
https://drive.google.com/file/d/0B6cqWmwsEk20Q2dHblhXZi14Wk0/edit?usp=sharing
I don't 알고 내가 뭘 잘못입니다.
?한 달에
상태:
날짜간어야 합 POSIXct,POSIXlt,날짜,시간,chron,yearmon, yearqtr,동물원,zooreg,timeDate,xts,그,ti,jul,timeSeries 및 fts 개체입니다.
개 요인,심지어는 캐릭터 벡터(아마도 때문에stringsAsFactors=TRUE
). 당신을 변환하는 벡터를 일부 datetime 클래스,인스턴스POSIXlt
:
library(lubridate)
some_date <- c("01/02/1979", "03/04/1980")
month(as.POSIXlt(some_date, format="%d/%m/%Y"))
[1] 2 4
이's 도 편리한 기능dmy
,해당 역할을 수행할 수 있는 동일(끝에 의해 제안@헨릭):
month(dmy(some_date))
[1] 2 4
어,@IShouldBuyABoat 제공 또는 힌트를 dd/mm/yyyy 문자 형식 없이 사용할 수 있는 모든 명시적으로 캐스팅:
month(some_date)
[1] 2 4
에 대한 목록의 형식을을 참조하십시오?맨 페이지
. You'll 찾"표준이 명백한 형식"미
는 기본 형식의 규칙에 따라 국제 ISO8601 표준는 표현으로 하루를"2001-02-28"그리고 시간 "14:01:02"를 사용하여 선두를 제로로 여기에.
의 필요없이는 외부 패키지:
면 날짜 형식은 다음과 같습니다:
myDate = as.POSIXct("2013-01-01")
을 얻기 위해 다음 달 번호:
format(myDate,"%m")
과를 얻을 달 문자열:
format(myDate,"%B")
변환할 수 있습니다 그것으로 날짜 형식으로-
new_date<- as.Date(old_date, "%m/%d/%Y")}
에서new_date
,당신이 얻을 수있는 달에 의해strftime()
달<-strftime(new_date,"%m")
old_date<- "01/01/1979"
new_date<- as.Date(old_date, "%m/%d/%Y")
new_date
#[1] "1979-01-01"
month<- strftime(new_date,"%m")
month
#[1] "01"
year<- strftime(new_date, "%Y")
year
#[1] "1979"