我有一个如下所示的开源数据集:
> head(df)
# V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20 V21 V22 V23 V24 V25
#1 240 20110101 1 260 50 50 70 50 NA 42 0 0 0 0 10217 56 8 95 20 7 1 0 0 0 0
#2 240 20110101 2 280 60 60 80 51 NA 42 0 0 0 0 10215 58 8 94 10 7 0 0 0 0 0
#3 240 20110101 3 280 60 60 80 51 NA 37 0 0 0 0 10211 60 8 91 2 7 0 0 0 0 0
#4 240 20110101 4 270 60 50 80 47 NA 37 0 0 0 0 10207 58 8 93 10 7 0 0 0 0 0
#5 240 20110101 5 260 50 50 70 53 NA 41 0 0 0 0 10202 61 8 92 NA 5 0 0 0 0 0
#6 240 20110101 6 270 50 50 70 51 34 39 0 0 0 0 10199 58 8 92 10 7 0 0 0 0 0
第二列包含数据。因为我只对特定数据的天气结果感兴趣,所以我首先希望它只过滤我需要的日期。
我有另一个包含日期的df:
> head(data,2)
DATUM TIJD
1 25-7-2014 18:30:00
2 26-7-2014 16:00:00
我现在从第二个df获取唯一日期:
dates <- unique(data$DATUM)
并创建一个列表 - &gt;
dates <- as.list(dates)
现在我尝试使用dplyr
过滤元素library(dplyr)
data_new <- filter(df, V2 %in% dates)
但这并没有给我任何记录。我认为在创造&#34;日期&#34;时出现了问题。变量
有什么想法吗?
答案 0 :(得分:2)
您希望不使用列表,而是使用数据框。
我正在复制宣布dplyr update的博文:
<强>列表变量强>
数据框通常由一系列具有相同长度的原子矢量组成。但是,也可以使用一个列表变量,我称之为列表变量。由于data.frame()的复杂强制规则,创建包含列表列的数据框的最简单方法是使用 data_frame():
data_frame(x = 1, y = list(1), z = list(list(1:5, "a", "b")))
> Source: local data frame [1 x 3]
>
> x y z
> 1 1 <dbl[1]> <list[3]>
答案 1 :(得分:1)
使用半连接怎么样?
df %>%
rename(DATUM = V2) %>%
semi_join(data)