I 형식으로 날짜 문자열의 약 2 만 행이 포함 된 CSV 있습니다속도 향상 변환 POSIX.ct하는
2012/11/13 21:10:00
가 전화를하자 그 csv$Date.and.Time
I 이 날짜 (및 수반되는 데이터)를 최대한 빨리 xts로 변환하려고합니다.
변환을 잘 수행하는 스크립트를 작성했는데 (아래 참조), 속도가 매우 느리고 속도를 높이고 싶습니다.최대한 많이
여기 현재 나의 방법론입니다. 누구든지 이것을 더 빨리 만드는 방법에 대한 제안이 있습니까?
dt <- as.POSIXct(csv$Date.and.Time,tz="UTC")
idx <- format(dt,tz=z,usetz=TRUE)
따라서이 날짜 문자열은 POSIX.ct
으로 변환됩니다. 그런 다음 format
을 사용하여 시간대 변환을 수행합니다 (z
은 변환 할 TZ를 나타내는 변수입니다). 그런 다음 일반 xts
호출을 사용하여 ctsv의 나머지 데이터와 함께 xts 시리즈를 만듭니다.
이것은 100 % 작동합니다. 그것은 매우, 아주 천천히. 나는 이것을 병렬로 실행하려고 시도했다. (아무것도하지 않는다. '천천히'란 무엇을 의미합니까?
user system elapsed
155.246 16.430 171.650
이것은 3GhZ, 16GB RAM 2012 MB 프로에 있습니다. Win7 컴퓨터에서 32GB RAM을 사용하는 유사한 프로세서에서 절반 정도를 얻을 수 있습니다.
누군가가 더 좋은 아이디어를 가지고 있다고 확신합니다. Rcpp
등을 통해 제안 할 수 있습니다. 그러나 은 솔루션이 이상적으로 작동합니다. 데이터베이스를 설정하는 것과 같은 다른 방법이 아닌 csv를 사용하십시오.. 그렇게 말하면서, 나는 어떤 방법이 가장 빠른 전환을 제공 할 것인가를 통해이를 수행 할 것입니다.
나는 어떤 도움을 주셔서 감사합니다. 미리 감사드립니다.
'as.POSIXct' 단계,'format' 단계 또는'xts' 단계가 느려지는 단계는 무엇인지 알고 계십니까? –
빠른 시간 (Dirk의 답변 없이는 알지 못했을 것임)을 검색하면 몇 가지 유사한 Q [LINK1] (http://stackoverflow.com/questions/12898318/convert-character-to)를 찾을 수 있습니다. -date-soon-in-r), [LINK2] (http://stackoverflow.com/questions/12786335/why-is-as-date-slow-on-a-character-vector) – GSee