可再现的例子:
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或解压缩它显示功能信息
需要帮忙!任何建议表示赞赏.
一段时间以来我一直在使用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中对一组中等大小的数据集进行数据分析.我需要做的一项分析要求我在大约24-48个文件中进行完全外部连接,每个文件有大约60列和最多450,000行.所以我经常遇到内存问题.
我认为在ffbase或sqldf会有所帮助,但显然完全外连接是不可能的.
有解决方法吗?我还没找到包裹吗?
我正在使用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表拆分成块?
我尝试使用'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)
我很感激您的解决方案.
ffbase ×5
r ×5
bigdata ×3
grouping ×2
aggregation ×1
data.table ×1
ff ×1
memory ×1
outer-join ×1
sqldf ×1