作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 R 的 ffdfdply 函数有疑问
a=as.ffdf(data.frame(b=11:20,c=c(4,4,4,4,4,5,5,5,5,5), d=c(1,1,1,0,0,0,1,0,1,1)))
ffdfdply(a, split=a$c, FUN= function(x) {data.frame(cumsum(x$d))}, trace=T)
它生成的输出只是一个累积和,不考虑分割标准。
我需要这样的输出
c cumsum
4 1
4 2
4 3
4 4
4 4
5 0
5 1
5 1
5 2
5 3
我们可以在“split”下包含多个列吗?如果有人也提供一个例子,那就太好了。
谢谢。
<小时/>@jwijffels,我在其他数据集上测试了你的解决方案
i=as.ffdf(data.frame(a=c(1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2), b=c(1,4,6,2,5,3,1,4,3,2,8,7,1,3,5,4,2,6,3,1,2), c=c(1,1,1,1,1,1,2,2,2,2,1,1,1,1,1,1,1,1,2,2,2), d=c(1,0,1,1,0,1,0,1,1,0,0,1,1,1,0,0,1,1,1,1,0)))
我收到的输出不正确。我需要在 a 列和 c 列的基础上计算 d 列的累积和。
以下步骤是正确的并且给出了正确的结果
idx <- ffdforder(i[c("a","c","b")])
ordered_i <- i[idx, ]
ordered_i$key_a_c <- ikey(ordered_i[c("a", "c")])
但是当我尝试累积总和时,得到了错误的结果。
cumsum_i <- ffdfdply(ordered_i, split=as.character(ordered_i$key_a_c), FUN= function(x) {
## Data in RAM, on which you can use data.table
x <- as.data.table(x)
result <- x[, cumsum_a_c := cumsum(x$d), by = list(key_a_c)]
as.data.frame(result)
}, trace=T)
请帮忙。我需要在大数据上运行这些命令集。
最佳答案
正确的用法是这样的
require(ffbase)
require(data.table)
a=as.ffdf(data.frame(b=11:20,c=c(4,4,4,4,4,5,5,5,5,5), d=c(1,1,1,0,0,0,1,0,1,1)))
ffdfdply(a, split=as.character(a$c), FUN= function(x) {
## Data in RAM, on which you can use data.table
x <- as.data.table(x)
result <- x[, cumsum := cumsum(d), by = list(c)]
as.data.frame(result)
}, trace=T)
如果您想分割两列,只需创建一个合并两列的新列并将其用作分割即可。请参阅 ?ikey
创建该列
关于R ffdfdply 分割问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17784484/
我对 R 的 ffdfdply 函数有疑问 a=as.ffdf(data.frame(b=11:20,c=c(4,4,4,4,4,5,5,5,5,5), d=c(1,1,1,0,0,0,1,0,1,1
我使用 ff/ffdf 和 ffdfdply 函数遇到“错误:无法分配大小为 ...MB 的向量”问题。 我正在尝试使用 ff 和 ffdf 包来处理已键入组的大量数据。数据(以 ffdf 表格式)如
我在使用 ff/ffdf 和 ffdfdply 函数时遇到“错误:无法分配大小为...MB 的向量”的问题。 我正在尝试使用 ff 和 ffdf 包来处理已键入组的大量数据。数据(以 ffdf 表格格
我是一名优秀的程序员,十分优秀!