我有2个带时间序列的数据集。
在数据集1中,有3列:Date
,price changes
,volume
。 1056行按日期排序,从01-01-2005
到31-12-2015
开始。
在数据集2中,有3列:Date
,price changes
,volume
。 1028行按日期排序,从01-01-2005
到31-12-2015
开始。 但只有 1028行,因为缺少数据(即缺少行)。
我想在数据集1中删除日期未出现在数据集2中的行。
我试过这个,但它不起作用:
dataset1[!rownames(dataset1) %in% dataset2$Date, ]
输出有1056行,所以它不会删除任何内容。
答案 0 :(得分:2)
您只需要执行dataset1[dataset1$Date %in% dataset2$Date, ]
:
set.seed(1)
d1 <- as.Date('2015-01-01') + 0:10
x <- sample(1:10, 11, replace = TRUE)
df1 <- data.frame(d1, x)
d1 x
1 2015-01-01 3
2 2015-01-02 4
3 2015-01-03 6
4 2015-01-04 10
5 2015-01-05 3
6 2015-01-06 9
7 2015-01-07 10
8 2015-01-08 7
9 2015-01-09 7
10 2015-01-10 1
11 2015-01-11 3
d2 <- as.Date('2015-01-01') + seq(0, 10, 3)
y <- sample(1:10, 4)
df2 <- data.frame(d2, y)
df1[df1$d1 %in% df2$d2, ]
d1 x
1 2015-01-01 3
4 2015-01-04 10
7 2015-01-07 10
10 2015-01-10 1