我正在尝试使用数据框中的每一行作为函数的输入来处理一些数据,然后将输出写入 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
最佳答案
我相信将一行作为参数传递给函数更容易。
myfunction <- function(row){
data <- read.csv("mydata.csv")
subsetedData <- subset(data, x=row[1] & y=row[2] & z=row[3], select=x:z)
write.csv(subsetedData, file="mycsvfile.csv")
}
apply(myXYZdata[,c("X","Y","Z")], MARGIN = 1, myfunction)
关于r - 将自定义函数应用于 r 中数据帧中的每一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32474823/