问题标签 [ff]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1281 浏览

r - ff/ffbase R 包中的 Data.table setDT 功能

计算包中的条件均值列ff/ffbase。我正在搜索ff/ffbase包中的功能,这允许我进行类似于以下使用data.table包进行的数据操作:

中有一个条件均值函数ffbase,但是,它创建了 中的类数长度的向量irisdf[,5]

,而不是长度为 的新向量nrow(irisdf)

正如@BondedDust 建议的那样ave(base)给出正确的输出:

所以最后一个问题是,如何添加VectorOfMeansirisdf我试过下面的代码,它有效:

使用来自SO答案的cbind.ffdf2,但我想,这个SO问题是关于更具体的问题,然后是主要的,我想有一种更简单(更快)的方法可以做到这一点。我希望能够在获得的数据集上运行(例如),你应该看看我关于合并的问题和在这种情况下(因为物理/虚拟存储模式存在我不详细了解的问题)。bigglm.ffirisdfVectorOfMeansirisdf

0 投票
2 回答
1407 浏览

r - 如何从 ffdf 对象中删除列?(右)

我可以轻松删除ffdf对象列吗?

如何只包含Sepal.lengthSpecies列?

0 投票
1 回答
1294 浏览

r - 如何将 35 GB 数据加载到 R 中?

我有一个维度为 2000 万条记录和 50 列的数据集。现在我想将此数据集加载到 R 中。我的机器 RAM 大小为 8 GB,我的数据集大小为 35 GB。我必须在完整数据上运行我的 R 代码。到目前为止,我尝试了 data.table(fread)、bigmemory(read.big.matrix) 包来读取该数据但没有成功。是否可以将 35 GB 数据加载到我的机器(8 GB)中?

如果可能,请指导我如何克服这个问题?

提前致谢。

0 投票
1 回答
557 浏览

r - ff R 中的包:“无磁盘空间”错误是权限问题吗?

我正在使用ffRStudio 中的包,它在我部门的 Windows 服务器上运行。我正在使用它来处理一些大型数据集,这些数据集也存储在网络驱动器上。我已经确认我对 Windows 中的驱动器具有完全读/写访问权限,但是当我使用ff包中直接将平面文件写入磁盘的任何函数(例如ff()as.ff())时,我收到“无磁盘空间”错误。

但是,如果我将数据写入另一个驱动器,然后将其移动到使用它的网络驱动器,pattern()它工作正常。ff我的包裹只有这个问题。其他功能basesave()write.csv()工作正常。是否存在特定于ff软件包的权限问题?我在下面包含了一个最小的工作示例。

这是 R 的软件版本信息:

0 投票
1 回答
96 浏览

r - 有效地将“个人打卡进出时间日志”转换为“建筑物随时间的总占用率”

所以我有 .csv 格式的数据,显示特定用户在几个月内进出建筑物的时间。我正在尝试使用 R 每 15/30 分钟将建筑物占用率制成表格以进行分析。

数据已被清理并采用大型ffdf数据框(约 1100 万个条目)的形式。数据帧具有numericfactor类型(它包括稍后可能有用的字符串和数字),并且打卡/打卡时间在格式为POSIXct.

如果这是一个小得多的数据集,我会执行以下操作:

  • 创建一个空的 .csv 文件(即occupancy)来存储入住率,时间作为列标题,日期作为行。
  • 使用 for 循环在所有行中迭代以下内容:
    • 计算建筑总时间(打卡时间 - 打卡时间)
    • 从打卡条目中提取日期,存储为inDate
    • 使用round_anyplyr包装中查找开始时间最近的 15 分钟上限,存储为nearest15
    • 查找用户占用的完整 15 分钟积木的数量,通过floor(as.numeric((clockouttime - clockintime)/15))
    • 将 1 添加到用户正在构建的相关时间块数,从occupancy[inDate, nearest15].

然而,遍历 1100 万行的 for 循环根本就没有效率。

有谁知道如何有效地做到这一点?我不知所措 -apply据我所知,函数系列会将所有数据强制转换为单一类型。如果您不熟悉特定命令,则不需要它们,我只想有人指出正确的包和实现的总体思路。

ff目前正在使用访问数据,但如果有更好的包可以做到这一点,我愿意接受建议。

谢谢。

编辑:这是我正在查看的代码的编辑片段:

user_hash, section_hash, dept_id, col_a, col_b, clockin_datetime, clockout_datetime EEDD1DA7F38CA42A35CF3C003B,85C7,TS,1,,2013-08-08 12:52:00,2013-08-08 23:00:00 2BCB6AA1603BB4357BC0D390C9,BFA3,VS,1,,2013-08-08 12:48:00,2013-08-08 22:58:00 46D859B55C4802DF51445025C5,943B,TS,1,,2013-08-08 11:58:00,2013-08-08 16:04:00 FE4EEA83AF6EA50CA5738B5610,00B3,VT,1,,2013-08-08 19:56:00,2013-08-08 23:04:00 8DB43D322F0AEF6D2B877862C3,DB1F,TS,1,,2013-08-08 12:49:00,2013-08-08 13:03:00 4E636571D425A74CA6B5FA7909,1860,VS,1,,2013-08-08 12:21:00,2013-08-08 14:01:00 26B41FA581408BDFD747234640,FDA4,VS,1,,2013-08-08 20:38:00,2013-08-08 23:03:00 A6C3C190BFFDCB4194774C1026,45C0,VT,1,,2013-08-08 12:58:00,2013-08-08 20:03:00 938506D977353EA65DC6BB5260,1819,VT,1,,2013-08-08 12:54:00,2013-08-08 16:01:00 E82F9350DA9FFC73EE6A66A286,04C1,VT,1,,2013-08-08 08:42:00,2013-08-08 12:45:00 6B92F1AB6B3EE193430B6B2793,6C2E,TS,1,,2013-08-08 09:58:00,2013-08-08 13:03:00 2B88836D8A4CA5183AAE5D3D9A,497C,TS,2,,2013-08-08 10:35:00,2013-08-08 16:06:00

我想到的期望输出是这样的,尽管任何显示我在任何给定时间段/日期入住的形式都可以。

date 12.00 12.15 12.30 12.45 ....... 2013-08-01 1344 1632 3742 1024 2013-08-02 342 435 435 435 2013-08-03 2013-08-04 ...

0 投票
1 回答
366 浏览

r - 如何在 Snow R 中使用大型多类型数据框?

我有一个 20M 行的大型 data.frame。这个数据框不仅是数字,还有字符。使用拆分和征服的概念,我想拆分这个数据帧以使用雪包(特别是 parLapply 函数)以并行方式执行。问题是节点内存不足,因为数据帧部分是在 RAM 中工作的。我寻找了一个包来帮助我解决这个问题,但我只找到了一个(考虑到多类型 data.frame):ff 包。另一个问题来自于这个包的使用。ffdf的拆分结果不等于commom data.frame的拆分。因此,无法运行 parLapply 函数。

你知道这个目标的其他包吗?Bigmemory 仅支持矩阵。

0 投票
1 回答
853 浏览

r - 为什么在 ffbase2 (dplyr_ffbase) 中汇总显示“as.vmode.default() (list) 对象中的错误不能强制输入'double'”?

我有一个包含 10 列的大型(2300 万行)ffdf 表(tbl_ffdf),其中 7 个是因子,3 个包含数字。它看起来像这样:

我想用 sum(Nx) 聚合数据以删除这种重复项并使我的表如下所示:

我正在使用从 github 安装的包 ffbase2(对于 ffdf 表来说是 dplyr)。我正在做以下事情:

然后它工作〜10秒并说

之后,它会根据我的 Rstudio 中的设置进入调试模式,他需要大约 3-5 分钟才能深入,停止挂起计算机并显示出错的功能代码:

在 Data 中,我们可以看到 x 是 F1 值的 data.frame。在 Traceback - 函数中

观察 ffbase2 的源代码并没有给我太多...我有类似方法 summarise_.grouped_ffdf 使用数据的递归切片,并且可能在最后一步它得到一些 data.frame 但想要得到一个矩阵?...这是“(列表)对象不能被强制输入'double'”错误的常见原因。

我不知道这个错误的真正原因是什么以及如何解决它。请帮忙!:-)

0 投票
1 回答
1061 浏览

r - 如何删除R中的ffdf对象目录?

我正在使用该ffdf包进行一些数据预处理。我的工作计算机有 4 个 CPU 内核和 8 Gb 的 RAM,我可以处理大约 0.2-3 亿个数据点,这真是太棒了。

但是,我还有另一个限制。大ffdf对象占用了我电脑的磁盘空间。当我将 5 个表合并为一个,并在其上再添加 20 列时,我收到了一条消息"no disk space"

所以,我想删除ffdf磁盘驱动器上未使用的对象。我可以在不退出 R 会话的情况下执行此操作吗?(我对该文件夹具有读取、写入和执行权限。)

我已经尝试了我所知道的一切,例如unlink(), file.remove(), delete(), close(), finalize(), finalizer(), ffdrop()”。

0 投票
2 回答
1172 浏览

r - 使用 tabplot 包时出现此错误“if (any(B < 1)) stop(“B too small”) 中的错误”是什么意思

我找到了用于可视化大型数据库的 tabplot 包。我使用下面的代码运行它,但在不同的数据帧上出现此错误:

这是一个例子:

任何想法如何克服这个问题?

更新- 我使用了另一台计算机,它工作正常。两台计算机都在 Windows 64 位上,但在我让它工作的计算机上,操作系统是 Win7 pro,而在出现错误的计算机上,操作系统是 WIN SERVER 2013

0 投票
1 回答
104 浏览

r - 从 R 中的 ff_object 中删除空格

我有一个 ff 对象。其中一列是字符串变量,有空格,我想删除这些。

我尝试了以下方法:

1)。 newcol <- gsub("[[:space:]]", "", mydata$mystr)

2)。 newcol<- as.ffdf(gsub("[[:space:]]", "", mydata$mystr))

我还尝试使用 as.character 命令,因此在应用 gsub 命令之前我说了以下内容:

但是,这些选项都不起作用。任何建议/帮助将不胜感激。

编辑:下面给出我的 AKRUN 的解决方案