2017-10-23 11 views
0

관측 값이 1 마이크로 초 또는 1 분당 1,000,000 초인 전기 장비에서 실행되는 테스트와 관련된 데이터입니다. 검사가 시작될 때마다 각 관찰이 발생할 때 데이터 통계. 상사는 시간 데이터에 대해 두 개의 열을 추가하기를 원합니다. 첫 번째 열은 1 밀리 초 또는 1/1,000 초로 이동하는 POSIXct 데이터를 가져야합니다. 두 번째 시간 열은 0 : 999에서 실행되어 마이크로 초를 나타냅니다. 처음 열의 데이터는 POSIXct 상태를 유지해야합니다. 우리가 사용하는 다른 프로그램은 해당 형식의 읽기 시간 데이터를 사용하기 때문입니다. 두 개의 시간 열을 사용하는 이유는 POSIXct가 마이크로 초보다 작은 시간과 부정확 해지기 때문입니다.정기적 인 간격으로 증가하는 반복되는 양의 시계열 데이터를 생성합니다.

내 질문에 "2002-11-12 14 : 10 : 25.120 UTC"라고 말하면서 천 번 반복하고 +.001 초만큼 증가 할 수 있습니까? 이 작업을보다 효율적으로 수행하려는 생각도 환영 할 것입니다.

답변

0

천장 사용()이 최선의 방법이라고 생각합니다. 당신은 숫자의 진행의 한도를 취할 수 있습니다 (나는 dplyr의 row_number()를 사용했습니다). 숫자로 나누고 단계를 늘리십시오.

library(tidyverse) 
df <- data.frame(date = rep(0, 100000)) %>% 
    mutate(date = as.POSIXct(Sys.Date())) 

df <- df %>% 
    mutate(newnum = lubridate::milliseconds(ceiling(row_number()/1000)), 
      newdate = date + newnum) 

는 음모로 설명하기 :

plot(lubridate::second(df$newdate[1:10000])) 

enter image description here

+1

감사를 도움이 정말 나를 도왔다. – Chuck