【发布时间】:2015-12-05 03:26:45
【问题描述】:
我正在尝试使用数据框中的每一行作为函数的输入来处理一些数据,然后将输出写入 csv 文件。按照下面的例子
myfunction <- function(X, Y, Z){
data <- read.csv("mydata.csv")
subsetedData <- subset(data, x=X & y=Y & z=Z, select=x:z)
write.csv(subsetedData, file="mycsvfile.csv")
}
apply(myXYZdata, MARGIN = 1, function(x1, x2, x3) myfunction(X, Y, Z))
我想根据数据框 myXYZdata 中的每一行进行子集化。但是,这似乎不起作用,或者我不完全理解 apply 的正确用法。
我知道这可以使用循环来完成,但我不想那样做。
编辑:
这样做的目的是我有一个大数据文件,我想根据在我的数据框“myXYZdata”中找到的变量组合对其进行子集化,并将结果存储在新的数据文件中。
我要子集的大数据文件是格式。
date x y z count
1 2015-08-20 00:00:00.000 a d h 56
2 2015-08-26 00:00:00.000 b e h 4
3 2015-08-18 00:00:00.000 b f i 8
4 2015-09-03 00:00:00.000 c e l 32
5 2015-08-12 00:00:00.000 a g l 3
【问题讨论】:
-
apply(myXYZdata, MARGIN = 1, function(x) myfunction(x$X, x$Y, x$Z))应该可以。 -
这肯定是XY problem (What is an XY problem?)。听起来您正在尝试使用复合索引/多索引索引到一个非常大的数据库文件,并使用逻辑索引。或者你可以使用哈希。你能用更多的背景重申你的问题吗?这些物品的尺寸是多少?
-
是的,您可能是正确的,这看起来确实是 XY 问题,对此感到抱歉。我已经编辑了我的原始帖子以包含我想要做的事情。
-
“我想根据在我的数据中找到的变量组合对一个大型 (Gb?) 数据文件进行子集化,并将结果存储在新的数据文件中。” 这真的闻起来像多索引到一个巨大的磁盘支持的数据库文件以获取视图。查看 HDFS、R bigmemory 与 ff 等。
标签: r