R中ffdf对象的vlookup方法

vlookup method for ffdf object in R

我有一个名为 'data' 的 ffdf 对象,它包含超过 2600 万行,如下所示:

       Location                  DateandTime     Value
1             1          01/01/2012 00:00:00     0.8              
2            42          01/01/2012 00:00:00     0.4             
3            14          01/01/2012 00:00:00     0.7              
4            21          01/01/2012 00:00:00     0.2   

我想根据较小的正常数据框 'lookup' 中的值添加名为 'Group' 的第四列数据,如下所示:

       Location      Group
1             1          1             
2             2          2         
3             3          8          
4             4          7  

所以我希望 'data' 中的新列具有 lookup$Group 值。我知道这可以通过 excel 中的 vlookup 来完成,并且我发现可以在 R 中使用普通 df 的函数,例如 addNewData.r。但是,如何专门针对 ffdf 对象完成此操作?

有很多方法可以进行这种类型的连接。

在 R 中,您可以使用 merge,也可以通过包 sqldf 使用 SQL,仅举几例。这是一个例子:

require(ff)

mydf <- data.frame(Location = seq(1:10), 
                 DateandTime =  seq(as.Date(Sys.Date()), by="days", 
                                    length=10),
                 Value = rnorm(10))


lookup <- data.frame(Location = seq(1:10),
                  Group = seq(20,29))
lookup

mydf <- as.ffdf(mydf) # you can make them both ffdf or just one and it still works

df2 <- merge(mydf,lookup, by = "Location")
df2

   Location DateandTime      Value Group
1         1  2016-06-26  0.6229381    20
2         2  2016-06-27  1.0009087    21
3         3  2016-06-28  1.1993809    22
4         4  2016-06-29  0.8809430    23
5         5  2016-06-30 -0.4233689    24
6         6  2016-07-01 -0.7101273    25
7         7  2016-07-02  0.4404004    26
8         8  2016-07-03  1.5120004    27
9         9  2016-07-04  0.5564032    28
10       10  2016-07-05  0.4839012    29

附带说明一下,最好不要为您的数据命名 "data",因为除了容易混淆之外,还有一个名为 data 的函数默认加载到全局环境中。