标签: ffbase

找不到R ff包ffsave'zip'

可再现的例子:

library("ff")
m <- matrix(1:12, 3, 4, dimnames=list(c("r1","r2","r3"), c("m1","m2","m3","m4")))
v <- 1:3    
ffm <- as.ff(m)    
ffv <- as.ff(v)        
d <- data.frame(m, v)

ffd <- ffdf(ffm, v=ffv, row.names=row.names(ffm))

 ffsave(ffd,file="C:\\Users\\R.wd\\ff\\ffd")
 ## Error in system(cmd, input = filelist, intern = TRUE) : 'zip' not found
Run Code Online (Sandbox Code Playgroud)

系统:Windows 7 64位,R 15.2 64位

安装了Rtools

zip 300xn-x64并解压缩设置为Windows Path的600xn文件夹

cmd行工作,键入zip或解压缩它显示功能信息

需要帮忙!任何建议表示赞赏.

r bigdata ffbase

7
推荐指数
1
解决办法
2030
查看次数

删除行ff包

一段时间以来我一直在使用ff包来处理大数据.我使用的R对象有大约130,000,000行和14列.其中两个列,温度和降水值缺少值"NA",因此我需要删除这些行以继续我的工作.我一直试图像在普通的R对象中那样做:

data<-data[!is.na(data$temp),]
Run Code Online (Sandbox Code Playgroud)

但我一直收到一个错误:

Error: vmode(index) == "integer" is not TRUE
Run Code Online (Sandbox Code Playgroud)

有没有人能够删除ffdf对象中的行?我很感激任何帮助.

r ff ffbase

5
推荐指数
1
解决办法
1137
查看次数

如何在R中执行大型数据集的完全外连接?

我正在尝试在R中对一组中等大小的数据集进行数据分析.我需要做的一项分析要求我在大约24-48个文件中进行完全外部连接,每个文件有大约60列和最多450,000行.所以我经常遇到内存问题.

我认为在ffbase或sqldf会有所帮助,但显然完全外连接是不可能的.

有解决方法吗?我还没找到包裹吗?

r outer-join bigdata sqldf ffbase

2
推荐指数
1
解决办法
6353
查看次数

R中的ffdfdply,分裂和内存限制

我正在使用ff/ffdf和ffdfdply函数"错误:无法分配大小... MB的向量"问题.

我正在尝试使用ff和ffdf包来处理已经键入组的大量数据.数据(以ffdf表格式)如下所示:

x = 

id_1    id_2    month    year    Amount    key
   1      13        1    2013     -200      11
   1      13        2    2013      300      54
   2      19        1    2013      300      82
   3      33        2    2013      300      70

.... (10+ Million rows)
Run Code Online (Sandbox Code Playgroud)

使用以下内容创建唯一键:

x$key = as.ff(as.integer(ikey(x[c("id_1","id_2","month","year")])))
Run Code Online (Sandbox Code Playgroud)

要通过使用键变量进行分组来总结,我有以下命令:

summary = ffdfdply(x=x, split=x$key, FUN=function(df) {
  df = data.table(df)
  df = df[,list(id_1 = id_1[1], withdraw = sum(Amount*(Amount>0),na.rm=T), by = "key"]
  df
},trace=T)
Run Code Online (Sandbox Code Playgroud)

使用data.table的优秀分组功能(从这个讨论中获得的想法).在实际代码中有更多的函数要应用于Amount变量,但即使这样我也无法处理完整的ffdf表(表的一个较小的子集工作正常).

似乎ffdfdplyis使用了大量的ram,给出了:

Error: cannot allocate vector of size 64MB
Run Code Online (Sandbox Code Playgroud)

BATCHBYTES似乎没有帮助.任何有ffdffply经验的人都可以推荐任何其他方法来解决这个问题,而无需预先将ffdf表拆分成块?

memory grouping r ffbase data.table

2
推荐指数
1
解决办法
825
查看次数

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

我尝试使用'ffbase'包使用ffdfdplyR中的函数对大型数据集进行聚合.
假设我有三个变量叫做Date,Item和sales.在这里,我想使用sum函数聚合Date和Item上的销售额.你能指导我在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)).
Run Code Online (Sandbox Code Playgroud)

我很感激您的解决方案.

grouping r aggregation bigdata ffbase

0
推荐指数
1
解决办法
1462
查看次数

标签 统计

ffbase ×5

r ×5

bigdata ×3

grouping ×2

aggregation ×1

data.table ×1

ff ×1

memory ×1

outer-join ×1

sqldf ×1