我是R的新手但是已经转向它来解决我正在尝试处理的大型数据集的问题.目前我有4列数据(Y值)设置为分钟间隔时间戳(月/日/年小时:分钟)(X值),如下所示:
timestamp tr tt sr st
1 9/1/01 0:00 1.018269e+02 -312.8622 -1959.393 4959.828
2 9/1/01 0:01 1.023567e+02 -313.0002 -1957.755 4958.935
3 9/1/01 0:02 1.018857e+02 -313.9406 -1956.799 4959.938
4 9/1/01 0:03 1.025463e+02 -310.9261 -1957.347 4961.095
5 9/1/01 0:04 1.010228e+02 -311.5469 -1957.786 4959.078
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是缺少一些时间戳值 - 例如,在9/1/01 0:13和9/1/01 0:27之间可能存在间隙,并且这些间隙在数据集中是不规则的.我需要将这些系列中的几个放入同一个数据库中,因为每个系列的缺失值不同,所以日期当前并不对齐每一行.
我想为这些丢失的时间戳生成行,并用空值(没有数据,不是零)填充Y列,这样我就有了一个连续的时间序列.
老实说,我不太确定从哪里开始(在我学习之前没有真正使用过R!)但是任何帮助都会非常感激.到目前为止,我已经安装了chron和zoo,因为看起来它们可能很有用.
谢谢!
我有一个.csv文件,其中包含一列日期/时间的4列数据,间隔为一分钟.有些时间戳丢失,所以我试图生成缺少的日期/时间并在Y列中为它们分配NA值.我以前使用其他.csv文件完全相同的格式,没有问题.代码是:
# read the csv file
har10 = read.csv(fpath, header=TRUE);
# set date
har10$HAR.TS<-as.POSIXct(har10$HAR.TS,format="%y/%m/%d %H:%M")
# convert to zoo
df1.zoo<-zoo(har10[,-1],har10[,1]) #set date to Index
# merge and generate NAs
df2 <- merge(df1.zoo,zoo(,seq(start(df1.zoo),end(df1.zoo),by="min")), all=TRUE)
# write zoo object to .csv file in Home directory
write.zoo(df2, file = "har10fixed.csv", sep = ",")
Run Code Online (Sandbox Code Playgroud)
在转换为POSIXct后,我的数据看起来像这样(整整一年,或多或少),这似乎很好:
HAR.TS C1 C2 C3 C4
1 2010-01-01 00:00:00 -4390.659 5042.423 -2241.6344 -2368.762
2 2010-01-01 00:01:00 -4391.711 5042.056 -2241.1796 -2366.725
3 2010-01-01 00:02:00 -4390.354 5043.003 -2242.5493 -2368.786
4 2010-01-01 00:03:00 …Run Code Online (Sandbox Code Playgroud)