2012-12-06 4 views
3

저는 CSV를 "stuff"변수로 읽고 첫 번째 열을 POSIXct로 강제 변환합니다 (이 열에는 "2012-12-04 17:49:52"형식의 타임 스탬프 만 있음) 그래서 이것은 잘 작동합니다).이상하게 작동하는 POSIXct 평등 작업

control <- subset(stuff,as.Date(stuff[,1]) == '2012-11-27') 
control.1 <- subset(stuff,as.Date(stuff[,1]) == '2012-11-28') 

내가이 같은 날짜에 의해 데이터를 분할하지 않는 것을 발견 : 나는 데이터의 몇 일 '의 가치를 가지고 있기 때문에

stuff[,1]<-as.POSIXct(stuff[,1]) 

, 나는 그 날짜에 의해 물건을 파괴하기 위해 노력하고있어 나는 기대할 것이다. tail (control)은 마지막 값이 2012-11-27 15:54:21 인 것을 보여줍니다. head (control.1)는 첫 번째 값이 2012-11-27 16:04:35임을 보여줍니다.

따라서 평등은 어떤 이유로 약 16 시경에 피벗 것처럼 보입니다. POSIXct로 강제 변환 할 때 시간대를 지정하려고 시도했지만 이것이 도움이되지 않았습니다. 제가 하루에 서브 세트 할 수있는 일이 있습니까 (그리고 이것이 실패한 이유가 있습니까?)? 이후에 데이터를 조각 내기 위해 사용할 계획이므로 매시간의 정보를 유지해야한다고 언급하고 싶습니다.

+0

시간대 때문입니다. 시간대를 as.Date로 지정할 수 있습니다. 기본적으로 UTC이므로 시간 소인을 날짜로 변환 할 때 일부는 다른 날짜로 변환됩니다. as.Date의 시간대가 타임 스탬프 시간대와 일치하는지 확인하십시오. – ilya

+0

'stuff [, 1] <- as.Date (stuff [, 1], tzone = "PST")'를 말하는 타임 스탬프를 수정하고 평등 검사에서도 시간대를 사용하지만 같은 결과가 나타납니다. 재미있는 점은 내가 할 경우 올바른 결과를 얻는 것입니다 : 'control <- subset (cases, cases [, 1] <= as.POSIXct ('2012-11-27 23:59:59'))' – padips

답변

0

아마도 cut이 유용 할 수도 있지만 문제가있는 데이터를 샘플링하지 않으면 알 수 없습니다.

여기에 cut을 사용하여 일별 하위 집합을 만드는 최소한의 예가 있습니다.

set.seed(1) # So you can get the same numbers as I do 
MyDates <- ISOdatetime(2012, 1, 1, 0, 0, 0, tz = "GMT") + sample(1:500000, 100) 
class(MyDates) 
# [1] "POSIXct" "POSIXt" 
split(MyDates, cut(MyDates, breaks="1 day")) 
$`2012-01-01` 
[1] "2012-01-01 08:34:53 GMT" "2012-01-01 17:26:15 GMT" "2012-01-01 01:51:35 GMT" 
[4] "2012-01-01 14:59:28 GMT" "2012-01-01 03:14:25 GMT" "2012-01-01 09:48:56 GMT" 
[7] "2012-01-01 13:48:48 GMT" "2012-01-01 11:41:58 GMT" "2012-01-01 16:53:56 GMT" 
[10] "2012-01-01 19:54:00 GMT" "2012-01-01 08:11:02 GMT" 

$`2012-01-02` 
[1] "2012-01-02 12:52:35 GMT" "2012-01-02 04:00:41 GMT" "2012-01-02 04:36:26 GMT" 
[4] "2012-01-02 00:31:17 GMT" "2012-01-02 05:27:47 GMT" "2012-01-02 13:06:44 GMT" 
[7] "2012-01-02 23:16:05 GMT" "2012-01-02 01:51:43 GMT" "2012-01-02 09:59:46 GMT" 
:::: 
:::: 
:::: 
[13] "2012-01-05 10:25:04 GMT" "2012-01-05 20:34:21 GMT" "2012-01-05 11:56:40 GMT" 
[16] "2012-01-05 02:56:40 GMT" "2012-01-05 09:08:00 GMT" "2012-01-05 02:45:00 GMT" 
[19] "2012-01-05 12:09:45 GMT" "2012-01-05 14:42:59 GMT" "2012-01-05 16:35:56 GMT" 

$`2012-01-06` 
[1] "2012-01-06 06:08:22 GMT" "2012-01-06 04:46:31 GMT" "2012-01-06 11:12:12 GMT" 
[4] "2012-01-06 17:45:37 GMT" "2012-01-06 09:48:54 GMT" "2012-01-06 00:47:02 GMT" 
[7] "2012-01-06 06:46:24 GMT" "2012-01-06 01:33:21 GMT" "2012-01-06 03:53:53 GMT" 
[10] "2012-01-06 00:01:45 GMT" "2012-01-06 13:23:54 GMT" "2012-01-06 01:40:54 GMT" 
+0

이것은 위대한 작품. 감사! – padips

관련 문제