2016-08-08 3 views
0

현재 Python에서 R로 전환 중입니다. Python에서 pandas로 날짜 범위를 만들고이를 데이터 프레임에 추가 할 수 있습니다.날짜 색인을 만들고 데이터 프레임에 추가하십시오.

data = pd.read_csv('Data') 
dates = pd.date_range('2006-01-01 00:00', periods=2920, freq='3H') 
df = pd.DataFrame({'data' : data}, index = dates) 

R에서 어떻게 할 수 있습니까?

다른 길이지만 같은 시간대의 두 데이터 세트를 비교하려는 경우 더 낮은 빈도로 데이터 세트를 다시 샘플링 할 수 있으므로 구멍에 'NaN'을 삽입하여 더 높은 빈도와 길이가 같을 수 있습니다. : 나는 기본적으로 내가 R에 이러한 코드를 어떻게 R.위한 팬더 패키지 상당을 찾는 것 같아

df2 = pd.read_csv('data2') #3 hour resolution = 2920 points of data 
data2 = df2.resample('30Min').asfreq() #30 Min resolution = 17520 points 

? 다음

+0

첫 번째 부분은'seq (from = as.POSIXct ("2006-01-01 00:00"), by = "3 hours", length.out = 2920)' – Sumedh

+0

'17520 '2920' 행을 리샘플링 한 후 행이 팬더 데이터 프레임입니까? '17515' 행을 반환하지 않습니까? – Abdou

+0

@ 좋은 생각 이네요. 데이터 프레임에 5 개의 추가 NaN을 덧붙여 야했습니다. –

답변

0

또 다른 (30 분)에 주어진 시간 간격에서 (3 시간) 당신의 시계열 데이터를 가져 오는 방법입니다 :

데이터 가져 오기 :

starter_df <- data.frame(dates=seq(from=(as.POSIXct(strftime("2006-01-01 00:00"))), 
           length.out = 2920, 
           by="3 hours"), 
        data = rnorm(2920)) 

전체 가져 오기를 삼십분 간격으로 순서와는 starter_df data.frame의 값으로 NA 's의 대체 :

full_data <- data.frame(dates=seq(from=min(starter_df$dates), 
to=max(starter_df$dates), by="30 min"), 
data=rep(NA,NROW(seq(from=min(starter_df$dates), 
to=max(starter_df$dates), by="30 min")))) 

full_data[full_data$dates %in% starter_df$dates,] <- starter_df[starter_df$dates %in% full_data$dates,] 

나는 그것이 도움이되기를 바랍니다.

관련 문제