如何使用R通过第一行绑定多个不同行数的数据集

如何使用R通过第一行绑定多个不同行数的数据集,r,xts,stocks,cbind,R,Xts,Stocks,Cbind,我试图通过“TimeStamp”绑定多个股票,TimeStamp是数据集的第一列。其余的列是开放、高、低、闭、卷。问题之一是它们都包含不同的行。第二个问题是“时间戳”是数字的&我不知道如何将其转换为适当的“时间”。我所知道的是,它们都是1分钟的间隔,并且每天都有一定的范围: 对于我想要绑定的所有股票,这些范围都是相同的 DATE BEGINNING END range: 20131220 1387515600 1387601940 range:20131223 13

我试图通过“TimeStamp”绑定多个股票,TimeStamp是数据集的第一列。其余的列是开放、高、低、闭、卷。问题之一是它们都包含不同的行。第二个问题是“时间戳”是数字的&我不知道如何将其转换为适当的“时间”。我所知道的是,它们都是1分钟的间隔,并且每天都有一定的范围:

对于我想要绑定的所有股票,这些范围都是相同的

DATE            BEGINNING   END
range: 20131220 1387515600  1387601940
range:20131223  1387774800  1387861140
range:20131224  1387861200  1387947540
range:20131226  1388034000  1388120340
以下是一种股票的示例:

Time        Open    High    Low     Close   Volume
1387519189  1.3635  1.3635  1.3632  1.3634  16300
1387519476  1.3633  1.3636  1.3632  1.3635  200
1387519798  1.3635  1.3635  1.3634  1.3634  200
1387520045  1.3635  1.3636  1.3635  1.3635  100
1387520392  1.3635  1.3636  1.3634  1.3635  100
1387520637  1.3636  1.3636  1.3635  1.3635  100
1387520977  1.3635  1.3636  1.3635  1.3636  100
1387521292  1.3637  1.3637  1.3635  1.3635  400
我曾尝试使用
cbind
绑定所有股票,但出现了一个错误,因为它们都包含不同的行。我曾尝试将每只股票转换为
xts
对象,但由于我不知道如何分解
时间
,因此我无法这样做。有什么建议吗?提前谢谢

期望输出:

`Time   Open   High    Low   Close  Volume`     `Time   Open High Low Close Volume`  
1387519189 1.3635 1.3635 1.3632 1.3634 16300
1387519189 35.5 35.90 35.4 35.5 100

13875194761.36331.3636361.36321.3635200
138751947635.635.635.4035.5100


13875197981.36351.36351.36341.3634200
138751979835.835.9535.435.5100
您想要使用的是
plyr
join
命令

join(x, y, by = "Time", type = "full")

关于将时间戳转换为时间的问题,看起来这些可能是POSIX格式的(自1970-01-01以来的秒数)。调用示例
df

date.time <- as.POSIXct(df$Time, origin="1970-01-01")
time.only <- format(date.time,"%H:%M:%S")
df.times  <- data.frame(Time=df$Time, date.time, time.only)
df.times
#         Time           date.time time.only
# 1 1387519189 2013-12-20 00:59:49  00:59:49
# 2 1387519476 2013-12-20 01:04:36  01:04:36
# 3 1387519798 2013-12-20 01:09:58  01:09:58
# 4 1387520045 2013-12-20 01:14:05  01:14:05
# 5 1387520392 2013-12-20 01:19:52  01:19:52
# 6 1387520637 2013-12-20 01:23:57  01:23:57
# 7 1387520977 2013-12-20 01:29:37  01:29:37
# 8 1387521292 2013-12-20 01:34:52  01:34:52

date.time您是否尝试过使用
merge()
?是的,我也尝试过使用
merge()
,但我的计算机最终冻结了..谢谢
merge.xts
已知内存问题,这可能导致计算机冻结:从2012年4月开始,我不确定是否已修复,或者,如果内存问题仅针对该问题的合并行用例。我曾尝试使用
join()
,但我在[data.frame(x,by)]中得到
错误:选择了未定义的列。
。您知道我如何解决此问题吗?我已解决该问题。。理想的结果是:
join(x,y,by=“Time”,type=“left”)
再次感谢你你真是个天才,我绞尽脑汁想弄清楚我到底是如何分解时间戳的。非常感谢你。看起来足够准确,看起来它们毕竟不是1分钟的间隔。