2017-12-29 1 views
0

개체의 상태를 예측하기 위해 몇 가지 열 (timestamp, object_id, 상태 및 기타)이 있습니다. "weektime"이 지위에 중요한 영향을 미친다는 가설이 있습니다. "weektime"에 나는 월요일 23시 17 분을 이해한다. 이제 가설을 테스트하기 위해이 형식의 열을 만들어야한다고 생각합니다.타임 스탬프에서 "Weekday % H : % M"새 열 만들기

는 이미 POSIXlt에 타임 스탬프를 변환 :

training_data$TimeStamp = as.POSIXlt(training_data$TimeStamp, "", "%Y-%m-%d %H:%M:%OS") 

나는 이미 만 평일에 열을 만들었습니다.

training_data$TimeStamp_weekday = weekdays(training_data$TimeStamp) 

"weektime"이있는 열을 만들 수 있습니까?

나는 예측을 쉽게하기 위해 시간당 15 분의 "시간 슬롯"만 필요하다고 생각합니다. 월요일 23시 17 분 -> 23시 15 분

0-15 mins -> 0 
15-30 mins -> 15 
30-45 mins -> 30 
45-60 mins -> 45 

또는 이와 비슷한 것입니다.

+0

스택 오버플로에 오신 것을 환영합니다! 문제를 먼저 해결하고 작동하지 않는 코드를 게시하십시오. 여기 포스터는 기존 코드를 비판 할 것으로 예상됩니다. – codeMonkey

+0

['ifelse'] (https://stat.ethz.ch/R-manual/R-devel/library/base/html/ifelse.html) 함수가 유용 할 수 있습니다. – bouncyball

+0

? strptime을 참조하십시오. 나는 평상시에 format spec.Also로 평생을 얻을 수 있다고 확신합니다. 또한 0 분과 60 분이 동일하다는 것을 알아야합니다. –

답변

2

lubridate :: 평일 결과에 아무 것도 붙여 넣지 않아도됩니다. trunc.POSIXt가 있지만 그것은 내가 말할 수있는 한 분수 간격으로자를 수 없습니다. 대신 7.5 분 (= .0.125 시간)을 뺀 15 분을 잘라내어 동일한 양으로 나누고 그 값을 반올림 한 다음 곱합니다. 그것은 이전 간격 표시로 "반올림"효과가 있어야합니다. 그런 다음 format.POSIXt를 사용하여 원하는 형식을 가져옵니다. 수행이란 무엇

> Sys.time() 
[1] "2017-12-29 12:24:49 PST" 
> 
format(as.POSIXct(to convert back to datetime 
    round(as.numeric(Sys.time() -0.125 * 60*60)/(0.125 * 60*60)) * 0.125*60*60 , 
      origin="1970-01-01"), "%A %H:%M") 
[1] "Friday 12:15" 

는, 그들이 간격 "마크"또는 경계에 집중됩니다 모든 시간을 이동입니다 규모에 가장 가까운 정수로 반올림 한 다음 다시 원래의 크기로 확장됩니다.

관련 문제