r - 将自定义函数应用于 r 中数据帧中的每一行

标签 r

我正在尝试使用数据框中的每一行作为函数的输入来处理一些数据,然后将输出写入 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/

相关文章:

r - 在 dplyr 管道运算符中组合条件评估 (%>%)

r 包开发 - opencpu 看不到自己的功能

r - 如何在数据集中对函数进行子集化和应用

r - 是否有直接进入包的功能索引帮助页面的命令?

r - 如何在 R 中为连续模式标记组?

r - 将 R 的 "by"命令的输出转换为数据帧

r - 如何在 R 中使用 ggMarginal 将箱线图添加到直方图

r - 打印时使用浆糊

r - 使用数据框中的列绘制多个有序条件箱线图

r - 无法安装.packages() : system call failed: Cannot allocate memory; installation of package had non-zero exit status