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 的函数默认加载到全局环境中。
我有一个名为 '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 的函数默认加载到全局环境中。