R中ffdf对象的vlookup方法

时间:2016-06-26 10:01:37

标签: r ff

我有一个名为' 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   

我想添加一个名为' Group'的第四列数据。基于较小的正常数据框中的值'查找'看起来像这样:

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

所以我想在数据'中添加新列。具有查找$ Group值。我知道这可以用excel中的vlookup来完成,我找到了可以在R中使用普通df的函数,比如addNewData.r。但是如何专门为ffdf对象做这件事?

1 个答案:

答案 0 :(得分:1)

您可以通过多种方式进行此类加入。

在R中,您可以使用sqldf,或者您可以通过包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 使用SQL,只是为了命名一对。这是一个例子:

{{1}}

从不小的角度来看,最好不要为数据命名&#34;数据&#34;因为除了令人困惑之外,还有一个名为数据的函数默认加载到全局环境。