我有一个名为' 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对象做这件事?
答案 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;因为除了令人困惑之外,还有一个名为数据的函数默认加载到全局环境。