目前正在从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中编码?
答案 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,]
我希望它有所帮助。