2016-08-08 7 views
0

現在、PythonからRに移行しています。Pythonでは、pandasで日付範囲を作成し、それをデータフレームに追加することができます。日付インデックスを作成してRのデータフレームに追加する

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でこれを行うにはどうすればよいですか?

さらに、異なる長さで同じタイムスパンを持つ2つのデータセットを比較したい場合、より低い頻度でデータセットを再サンプリングすることができます。そのため、高い頻度と同じ長さにすることができます:

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

私は基本的に私はRでこれらをコーディングすることができますどのようにR.のためのパンダパッケージと同等を探していたと思いますか?

+0

第1部: 'seq(from = as.POSIXct(" 2006-01-01 00:00 ")、by =" 3 hours "、length.out = 2920)' – Sumedh

+0

本当に '17520 2920行を再サンプリングした後の行pandas dataframe? '17515'行を返しませんか? – Abdou

+0

@Abdouそれは良いキャッチだ、私はそれらをさらに作るためにそのデータフレームに5つの余分なNaNを追加しなければならなかった –

答えて

0

次は別のものに与えられた時間間隔(3時間)から、あなたの時系列データを取得する方法(30分)です。

は、データを取得します。

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

はフルをゲット30分間隔での順序とstarter_df data.frameからの値でNA年代を置き換える:私はそれが役に立てば幸い

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,] 

関連する問題