2013-12-09 7 views
2

데이터 프레임 개체에서 클래스에 변수를 생성하는 데 사용할 수있는 기본 제공 함수가 있습니까 Date 요일, 월을 만드는 데 사용되는 시계열 , 년, 올해의 주, 등 R?요일, 월, 연도, 주 단위의 요일 R

weekdays, months, quarters, 기본 패키지의 기능 2012년 3월 5일, 예를 들어, 금요일, 매월 3 일의 1 주일 것을 나타 내기 위해 수치 출력을 찾고, 텍스트 출력을 생성 월, 일년 중 63 일 등

답변

4

이상한 컨벤션이 적용된 POSIXlt에서 몇 가지를 얻을 수 있습니다. 연도는 1900 년이 필요하지만 월은 0에서 11 일까지입니다.하지만 평일과 일년 중 어느 날을 맞이할 수 있습니다.

R> dd <- as.Date("2012-05-03") 
R> as.POSIXlt(dd) 
[1] "2012-05-03 UTC" 

그런 다음

R> unclass(as.POSIXlt(dd)) 
$sec 
[1] 0 

$min 
[1] 0 

$hour 
[1] 0 

$mday 
[1] 3 

$mon 
[1] 4 

$year 
[1] 112 

$wday 
[1] 4 

$yday 
[1] 123 

$isdst 
[1] 0 

attr(,"tzone") 
[1] "UTC" 
R> 
+0

Dirk를 공유해 주셔서 감사합니다. 그래서 "date"형식의 data.frame을 POSIXlt로 변환 한 다음 다시 data.frame/"Date"형식으로 변환해야합니까? – jessica

+0

저는 대개 relavant 정보 (요일이라고 말하면됩니다)를 새로운 열로 추출합니다. 날짜를 '날짜'유형으로 유지하고 그 옆에 필요한 것을 계산하십시오. –

+0

알겠습니다. 나는 보통'fix' 명령을 많이 사용하고 데이터 프레임 에서처럼 데이터를 볼 방법이 없기 때문에 대개 POSIXlt 및 xts와 같은 데이터를 만드는 데 문제가 있습니다. 이 시계열 패키지를 사용할 수있는 방법을 알고 계시고 동시에 데이터 세트를 왼쪽에서 오른쪽으로 움직이는 변수 열이있는 일련의 일자 행으로보십시오. xts 형식으로 내 데이터를 보려고 할 때마다이 메모장 파일을 직관적 인 형식으로 배열 된 데이터로 가져옵니다. 이 Dirk와 JB에 대한 귀하의 도움에 감사드립니다. – jessica

2

은 내가 생각할 수있는 몇 가지 옵션이 있습니다.

먼저 as.POSIXlt 클래스를 사용하여 df$date$yday과 같은 하위 집합을 만들 수 있습니다. as.POSIXlt()에는 날짜의 요소가 그 밑에있는 목록으로 포함되어 있습니다. 또한

, 당신은 날짜와 함께 많은 작업을 수행 할 lubridate 패키지를 사용할 수 있습니다

yday(x) 
wday(x) 
mday(x) 
2

같은 기능을 가지고 lubridate 패키지.

도움말 파일 : Lubridate는 날짜를 쉽게 구문 분석하고 조작 할 수있는 도구를 제공합니다. 예를 들어

: 그것은 날짜 접합을 많이 가지고 있기 때문에

> library(lubridate) 
> d <- today() 
> d 
[1] "2014-04-29" 
> day(d) 
[1] 29 
> month(d) 
[1] 4 
> year(d) 
[1] 2014 
> week(d) 
[1] 18 
> weekdays(d) 
[1] "Tuesday" 
> days_in_month(d) 
Apr 
30 

나는 그것을 주조 및 연산 기능, 내장 함수를 선호합니다.