创建日期索引并添加到​​R中的数据框

时间:2016-08-08 18:56:16

标签: r time-series

目前正在从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?

中这样做

此外,如果我想比较具有不同长度但相同时间跨度的2个数据集,您可以使用较低频率对数据集进行重新采样,以便通过在孔中放置“NaN”来使其与较高频率的长度相同:

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

我想我基本上都在寻找一个与R相当的Pandas包。我怎样才能在R中编码?

1 个答案:

答案 0 :(得分: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分钟为间隔获取完整序列,并将NA替换为starter_df data.frame:

中的值
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,]

我希望它有所帮助。