Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 创建包含NAs值的欧元/美元价格表_R - Fatal编程技术网

R 创建包含NAs值的欧元/美元价格表

R 创建包含NAs值的欧元/美元价格表,r,R,我有一个包含以下数据的表格: head(EURUSD0) Date Open High Low Close 1 2005-05-02 00:00:00 1.2861 1.2861 1.2861 1.2861 2 2005-05-02 00:04:00 1.2860 1.2860 1.2860 1.2860 3 2005-05-02 00:10:00 1.2861 1.2861 1.2861 1.2861 4 2005-05-02 00:11:00

我有一个包含以下数据的表格:

head(EURUSD0)
                 Date   Open   High    Low  Close
1 2005-05-02 00:00:00 1.2861 1.2861 1.2861 1.2861
2 2005-05-02 00:04:00 1.2860 1.2860 1.2860 1.2860
3 2005-05-02 00:10:00 1.2861 1.2861 1.2861 1.2861
4 2005-05-02 00:11:00 1.2860 1.2860 1.2860 1.2860
5 2005-05-02 00:12:00 1.2861 1.2861 1.2861 1.2861
6 2005-05-02 00:13:00 1.2862 1.2862 1.2861 1.2861
日期定义为POSIXlt:

EURUSD0$Date <- as.POSIXlt(EURUSD0[,1],format = '%Y.%m.%d %H:%M')
我想在这个数据框中填入我所拥有的0欧元的信息。请注意,欧元兑美元每分钟显示一次,而欧元兑美元0每分钟不显示一次

我可以用一个简单的方法来使用这个想法:

> (EURUSD0$Date[1] == EURUSD$Date)[1:10]
 [1]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
> (EURUSD0$Date[2] == EURUSD$Date)[1:10]
 [1] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
但是我有很多数据,而且非常昂贵


有任何想法/提示如何继续(以不昂贵的方式)吗?

使用
合并
的一个解决方案:

merge(EURUSD[1], EURUSD0, by="Date", all.x=T)
                 Date   Open   High    Low  Close
1 2005-05-02 00:00:00 1.2861 1.2861 1.2861 1.2861
2 2005-05-02 00:01:00     NA     NA     NA     NA
3 2005-05-02 00:02:00     NA     NA     NA     NA
4 2005-05-02 00:03:00     NA     NA     NA     NA
5 2005-05-02 00:04:00 1.2860 1.2860 1.2860 1.2860
6 2005-05-02 00:05:00     NA     NA     NA     NA

使用这种方法,一个带有时间值的简单数据框就足够了:
euruds试图理解这一点。因此,您希望您的目标框架主要是NAs,而不是几个值?如果您认为这有助于您接受左边的答案。
> (EURUSD0$Date[1] == EURUSD$Date)[1:10]
 [1]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
> (EURUSD0$Date[2] == EURUSD$Date)[1:10]
 [1] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
merge(EURUSD[1], EURUSD0, by="Date", all.x=T)
                 Date   Open   High    Low  Close
1 2005-05-02 00:00:00 1.2861 1.2861 1.2861 1.2861
2 2005-05-02 00:01:00     NA     NA     NA     NA
3 2005-05-02 00:02:00     NA     NA     NA     NA
4 2005-05-02 00:03:00     NA     NA     NA     NA
5 2005-05-02 00:04:00 1.2860 1.2860 1.2860 1.2860
6 2005-05-02 00:05:00     NA     NA     NA     NA
EURUSD0$Date <- as.POSIXct(EURUSD0$Date)
merge(EURUSD[1], EURUSD0, by="Date", all.x=T)
#                  Date   Open   High    Low  Close
# 1 2005-05-02 00:00:00 1.2861 1.2861 1.2861 1.2861
# 2 2005-05-02 00:01:00     NA     NA     NA     NA
# 3 2005-05-02 00:02:00     NA     NA     NA     NA
# 4 2005-05-02 00:03:00     NA     NA     NA     NA
# 5 2005-05-02 00:04:00 1.2860 1.2860 1.2860 1.2860
# 6 2005-05-02 00:05:00     NA     NA     NA     NA