Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中使用ffdfdply函数进行聚合_R_Grouping_Bigdata_Aggregation_Ffbase - Fatal编程技术网

在R中使用ffdfdply函数进行聚合

在R中使用ffdfdply函数进行聚合,r,grouping,bigdata,aggregation,ffbase,R,Grouping,Bigdata,Aggregation,Ffbase,我尝试使用R中的ffdfdply函数在大型数据集上使用“ffbase”包进行聚合。 假设我有三个变量,分别是Date、Item和sales。在这里,我想使用sum函数来聚合日期和项目的销售额。你能给我介绍一下R中的一些正确语法吗 在这里,我试着这样做: grp_qty <- ffdfdply(x=data[c("sales","Date","Item")], split=as.character(data$sales),FUN = function(data) summaryBy(D

我尝试使用R中的
ffdfdply
函数在大型数据集上使用“ffbase”包进行聚合。
假设我有三个变量,分别是Date、Item和sales。在这里,我想使用sum函数来聚合日期和项目的销售额。你能给我介绍一下R中的一些正确语法吗 在这里,我试着这样做:

grp_qty <- ffdfdply(x=data[c("sales","Date","Item")], split=as.character(data$sales),FUN = function(data)  

summaryBy(Date+Item~sales, data=data, FUN=sum)).

grp\u数量标记ffdfdply是ffbase的一部分,而不是ff。
为了展示ffdfdply的使用示例,让我们生成一个带有50Mio行的
ffdf

  require(ffbase)
  data <- expand.ffgrid(Date = ff(seq.Date(Sys.Date(), Sys.Date()+10000, by = "day")), Item = ff(factor(paste("Item", 1:5000))))
  data$sales <- ffrandom(n = nrow(data))
  # split by date -> assuming that all sales of 1 date can fit into RAM
  splitby <- as.character(data$Date, by = 250000)
  grp_qty <- ffdfdply(x=data[c("sales","Date","Item")], 
                      split=splitby, 
                      FUN = function(data){
                        ## This happens in RAM - containing **several** split elements so here we can use data.table which works fine for in RAM computing
                        require(data.table)
                        data <- as.data.table(data)
                        result <- data[, list(sales = sum(sales, na.rm=TRUE)), by = list(Date, Item)]
                        as.data.frame(result)
                      })
  dim(grp_qty)
require(ffbase)

数据
ffdfply
不在基数R中。您应该提到您正在使用的包。好的,这里我使用了ff包。因为我们有ffdfdply()用于聚合。你能帮我个忙吗?你应该把它编辑成问题。当你在做的时候,也许可以把它清理一下?”“u”代替“you”并不是这里最好的风格。为了实现“即时回复”,通常最好提供一个“即时回复”,而不是要求“即时回复”。顺便说一句,
ffdfdply
ffbase
包中,而不是
ff
中。