문제

날짜/시간 형식을 적용한 다음 날짜/시간 형식을 적용한 후 날짜/시간의 차이를 가져 가고 싶습니다.

그러나 특정 항목에 대해 그렇게 할 때 콘솔에서 올바른 답을 얻을 수 있지만 전체 세트에서 작업을 수행 할 때 콘솔은 숫자를 출력하며 날짜 프레임은 볼 수 있듯이 그 숫자를 반영합니다.

차이를 취하려고 할 때 데이터 프레임에서 시간을 어떻게 얻을 수 있습니까?나는 루브리데이트 패키지를 사용하고 있는데,그렇게 할 수있는 기능이 있습니까?

여기에 몇 가지 예제 코드/사진을 설명하는 데이터입니다

CR_Date <- data.frame(
  pos1="2014-07-01 00:00:00",
  pos2=c("2014-07-01 00:00:00","2014-07-01 10:15:00")
)
CR_Date[] <- lapply(CR_Date,as.POSIXct)
CR_Date

#        pos1                pos2
#1 2014-07-01 2014-07-01 00:00:00
#2 2014-07-01 2014-07-01 10:15:00

CR_Date$pos2[2] - CR_Date$pos1[2]
#Time difference of 10.25 hours
CR_Date$hours <- CR_Date$pos2 - CR_Date$pos1

enter image description here

도움이 되었습니까?

해결책

첫째, 이것은 윤활물과 아무 관련이 없습니다.

둘째, RSTUDIO는 디스플레이 창에서 변수를 인쇄하여 나사로 내려 놓았습니다.명령 줄 창에서 CR_Date$hours를 입력하면 인쇄물이 표시됩니다

#Time differences in secs
#[1]     0 36900
.

head(CR_Date)는 다음과 같습니다 :

#        pos1                pos2      hours
#1 2014-07-01 2014-07-01 00:00:00     0 secs
#2 2014-07-01 2014-07-01 10:15:00 36900 secs
.

그 중 하나가 표시되는 것과 같이 당신을 끌어 올릴 것입니다.

@victorp가 제안하므로 difftime 가이 문제를 해결하는 방법입니다.

CR_Date$hours <- with(CR_Date, difftime(pos2,pos1,units="hours") )
CR_Date

#        pos1                pos2       hours
#1 2014-07-01 2014-07-01 00:00:00  0.00 hours
#2 2014-07-01 2014-07-01 10:15:00 10.25 hours
.

다른 팁

당신은 또한 사용할 수 있습니다"as.double 방법"과 그 units 논증(참조) ?diffime):

as.double 방법[as.double(x, units = "auto", ...)]지정된 단위로 표현된 숫자 값을 반환합니다

...어디 x

클래스에서 상속되는 객체 "difftime"

당신의 예에 적용,어디 pos2 - pos1 이 결과로 difftime 개체:

CR_Date$hours <- as.double(CR_Date$pos2 - CR_Date$pos1, units = "hours")
CR_Date

#        pos1                pos2 hours
#1 2014-07-01 2014-07-01 00:00:00  0.00
#2 2014-07-01 2014-07-01 10:15:00 10.25

또는 다른 units:

as.double(CR_Date$pos2 - CR_Date$pos1, units = "mins")
#[1]   0 615

as.double(CR_Date$pos2 - CR_Date$pos1, units = "days")
#[1] 0.0000000 0.4270833
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top