【问题标题】:vlookup method for ffdf object in RR中ffdf对象的vlookup方法
【发布时间】:2016-06-26 10:01:37
【问题描述】:

我有一个名为“数据”的 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   

我想根据一个较小的普通数据框“查找”中的值添加第四列数据,称为“组”,如下所示:

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

所以我希望“数据”中的新列具有查找$Group 值。我知道这可以通过 excel 中的 vlookup 来完成,并且我发现了可以与 R 中的普通 df 一起使用的函数,例如 addNewData.r。但是如何专门针对 ffdf 对象完成呢?

【问题讨论】:

    标签: r ff


    【解决方案1】:

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

    在 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 的函数默认加载到全局环境中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-17
      • 2012-11-10
      • 1970-01-01
      • 2013-09-09
      • 1970-01-01
      • 2016-10-28
      相关资源
      最近更新 更多