일회, 재현 할 수없는 데이터가 있으면 죄송합니다.이 문제를 재현하는 방법을 알 수 없습니다. 그러나 나는 적절한 정보뿐만 아니라 내가 한 일에 대한 단계별 목록을 포함시키기 위해 최선을 다할 것이다. 문제 해결에 대한 어떤 생각이라도 대단히 감사하겠습니다. 나는 내가 결국 동물원 변환,하지만 지금은 내가 데이터 프레임으로 유지 R.에 읽어 큰 시계열 데이터 세트가strptime을 사용하면 데이터 세트에 중복 날짜가 발생합니다.
:
내 문제는 이것이다.
이> str(Met)
'data.frame': 568354 obs. of 18 variables:
$ time_local : Factor w/ 568354 levels "2006-08-06 03:15:00",..: 1 2 3 4 5 6 7 8 9 10 ...
참고 - 메트로 $의 time_local 내가와 걱정과 나는 STR 판독의 다른 모든 열을 제거 한 것입니다 : read.csv
를 사용하여 나는이 얻을 데이터를보고 str
을 사용하여 R.로 데이터를 읽고 . 내가
Dup<-Met$time_local[duplicated(Met$time_local)]
를 사용하여 중복을 검색하면 내가 strptime
MetStrp<-strptime(Met$time_local, "%Y-%m-%d %H:%M:%S")
str(MetStrp)
POSIXlt[1:568354], format: "2006-08-06 03:15:00" "2006-08-06 03:20:00" "2006-08-06 03:25:00" ...
를 사용하여 POSIXlt 또는 POSIXct 객체에 날짜/시간 데이터를 변환하는 경우
나는 아무것도
str(Dup)
Factor w/ 568354 levels "2006-08-06 03:15:00",..:
를 얻을 그 다음에 중복 검색
Dup<-MetStrp[duplicated(MetStrp)]
> head(Dup)
[1] "2007-03-11 02:00:00" "2007-03-11 02:05:00" "2007-03-11 02:10:00"
[4] "2007-03-11 02:15:00" "2007-03-11 02:20:00" "2007-03-11 02:25:00"
> str(Dup)
POSIXlt[1:60], format: "2007-03-11 02:00:00" "2007-03-11 02:05:00" "2007-03-11 02:10:00" ...
나는 이제 동물원을 만들 때 나중에 물건을 버리는 60 개의 복제본을 가지고 있습니다.
그리고 흥미롭게도, 나는 POSIXct
ct<-as.POSIXct(MetStrp)
str(ct)
POSIXct[1:568354], format: "2006-08-06 03:15:00" "2006-08-06 03:20:00" "2006-08-06 03:25:00" ...
에 POSIXlt 형식을 변경하면 나도 같은 중복을 얻을하지만
를 사용하여 중복 된 곳을 찾아 선택하면 시간Dup<-ct[duplicated(ct)]
> head(Dup)
[1] "2007-03-11 01:00:00 PST" "2007-03-11 01:05:00 PST" "2007-03-11 01:10:00 PST"
[4] "2007-03-11 01:15:00 PST" "2007-03-11 01:20:00 PST" "2007-03-11 01:25:00 PST"
> str(Dup)
POSIXct[1:60], format: "2007-03-11 01:00:00" "2007-03-11 01:05:00" "2007-03-11 01:10:00" ...
에 의해 상쇄
Dup_loc<-which(duplicated(MetStrp) | duplicated(MetStrp,fromLast=TRUE))
중복 위치가 120 개 있습니다. 결국 POSIXlt와 POSIXct의 중복이됩니다. POSIXct와
str(Dup_loc)
int [1:120] 62470 62471 62472 62473 62474 62475 62476 62477 62478 62479 ...
은 항상 시간이 1 ~ 2 인 날짜 및 중복 확인하려면 2 ~ 3
POSIClt은 항상 시간에서있는 기간 :
Test<-MetStrp[Dup_loc]
>Test
[1] "2007-03-11 01:00:00" "2007-03-11 01:05:00" "2007-03-11 01:10:00"
[4] "2007-03-11 01:15:00" "2007-03-11 01:20:00" "2007-03-11 01:25:00"
[7] "2007-03-11 01:30:00" "2007-03-11 01:35:00" "2007-03-11 01:40:00"
[10] "2007-03-11 01:45:00" "2007-03-11 01:50:00" "2007-03-11 01:55:00"
[13] "2007-03-11 02:00:00" "2007-03-11 02:05:00" "2007-03-11 02:10:00"
[16] "2007-03-11 02:15:00" "2007-03-11 02:20:00" "2007-03-11 02:25:00"
[19] "2007-03-11 02:30:00" "2007-03-11 02:35:00" "2007-03-11 02:40:00"
[22] "2007-03-11 02:45:00" "2007-03-11 02:50:00" "2007-03-11 02:55:00"
[25] "2008-03-09 01:00:00" "2008-03-09 01:05:00" "2008-03-09 01:10:00"
[28] "2008-03-09 01:15:00" "2008-03-09 01:20:00" "2008-03-09 01:25:00"
[31] "2008-03-09 01:30:00" "2008-03-09 01:35:00" "2008-03-09 01:40:00"
[34] "2008-03-09 01:45:00" "2008-03-09 01:50:00" "2008-03-09 01:55:00"
[37] "2008-03-09 02:00:00" "2008-03-09 02:05:00" "2008-03-09 02:10:00"
[40] "2008-03-09 02:15:00" "2008-03-09 02:20:00" "2008-03-09 02:25:00"
[43] "2008-03-09 02:30:00" "2008-03-09 02:35:00" "2008-03-09 02:40:00"
[46] "2008-03-09 02:45:00" "2008-03-09 02:50:00" "2008-03-09 02:55:00"
[49] "2009-03-08 01:00:00" "2009-03-08 01:05:00" "2009-03-08 01:10:00"
[52] "2009-03-08 01:15:00" "2009-03-08 01:20:00" "2009-03-08 01:25:00"
[55] "2009-03-08 01:30:00" "2009-03-08 01:35:00" "2009-03-08 01:40:00"
[58] "2009-03-08 01:45:00" "2009-03-08 01:50:00" "2009-03-08 01:55:00"
[61] "2009-03-08 02:00:00" "2009-03-08 02:05:00" "2009-03-08 02:10:00"
[64] "2009-03-08 02:15:00" "2009-03-08 02:20:00" "2009-03-08 02:25:00"
[67] "2009-03-08 02:30:00" "2009-03-08 02:35:00" "2009-03-08 02:40:00"
[70] "2009-03-08 02:45:00" "2009-03-08 02:50:00" "2009-03-08 02:55:00"
[73] "2010-03-14 01:00:00" "2010-03-14 01:05:00" "2010-03-14 01:10:00"
[76] "2010-03-14 01:15:00" "2010-03-14 01:20:00" "2010-03-14 01:25:00"
[79] "2010-03-14 01:30:00" "2010-03-14 01:35:00" "2010-03-14 01:40:00"
[82] "2010-03-14 01:45:00" "2010-03-14 01:50:00" "2010-03-14 01:55:00"
[85] "2010-03-14 02:00:00" "2010-03-14 02:05:00" "2010-03-14 02:10:00"
[88] "2010-03-14 02:15:00" "2010-03-14 02:20:00" "2010-03-14 02:25:00"
[91] "2010-03-14 02:30:00" "2010-03-14 02:35:00" "2010-03-14 02:40:00"
[94] "2010-03-14 02:45:00" "2010-03-14 02:50:00" "2010-03-14 02:55:00"
[97] "2011-03-13 01:00:00" "2011-03-13 01:05:00" "2011-03-13 01:10:00"
[100] "2011-03-13 01:15:00" "2011-03-13 01:20:00" "2011-03-13 01:25:00"
[103] "2011-03-13 01:30:00" "2011-03-13 01:35:00" "2011-03-13 01:40:00"
[106] "2011-03-13 01:45:00" "2011-03-13 01:50:00" "2011-03-13 01:55:00"
[109] "2011-03-13 02:00:00" "2011-03-13 02:05:00" "2011-03-13 02:10:00"
[112] "2011-03-13 02:15:00" "2011-03-13 02:20:00" "2011-03-13 02:25:00"
[115] "2011-03-13 02:30:00" "2011-03-13 02:35:00" "2011-03-13 02:40:00"
[118] "2011-03-13 02:45:00" "2011-03-13 02:50:00" "2011-03-13 02:55:00"
를 I로 지금까지 볼 수 있습니다, 위의 모든 중복 타임 스탬프가 표시되지 않습니다. 그래서 나는 그 문제가 무엇인지 모르겠다. 그러나 뭔가 잘못된 것이있다.
내가 알 수있는 한, 내가 한 모든 것은 요인 데이터 세트를 시간 기반 데이터 세트로 변환 한 것입니다. 그래서 나는 왜 동물원에 중복 오류가 발생하는지 알지 못하며 duplicated
을 사용하여 복제본을 찾지 못합니다.
다시 말씀 드리지만이 문제에 대한 의견은 크게 환영 할 것입니다.
멋진 일을 시작합니다. 나는 그것이 그 문제의 뿌리라고 생각한다. 그러나 strptime을 사용할 때 tz = ""로 설정해도 문제가 해결되지 않는 것 같습니다. – Vinterwoo
중복 된 모든 전화를 잊어 버립니다. 그냥 POSIXct로 변환 한 다음,'diff (x)'를보십시오. R이 날짜를 올바르게 파싱하게하면 DST 차이점에 따라 달라집니다. –
tz = "UTC"로 설정하면 DST 문제가 제거되고 복제본이 제거되므로 동물원이 다시 한 번 행복해집니다. 감사합니다. DWin 및이 문제를 조사한 모든 사람들에게 감사드립니다. – Vinterwoo