R使用数据帧中的单元格值作为已定义自定义函数中的参数

R使用数据帧中的单元格值作为已定义自定义函数中的参数,r,apply,R,Apply,一般来说,我对R和编程比较陌生,所以我的问题可能是由于缺乏经验和隐晦的错误消息。我对plyr包中不同版本的apply和函数做了大量的调查和实验。我的问题的根源是如何将数据帧中单元格的值作为参数提供给函数?我将尽力提供示例数据 我在R中处理调查数据,因此我有一个包含许多列和行的数据框。我创建了一个自定义函数来处理一些数据。我首先运行函数的脚本,以便将其加载到RStudio的工作区中。该函数有两个参数: myfunction <- function(id, info){ # various

一般来说,我对R和编程比较陌生,所以我的问题可能是由于缺乏经验和隐晦的错误消息。我对plyr包中不同版本的apply和函数做了大量的调查和实验。我的问题的根源是如何将数据帧中单元格的值作为参数提供给函数?我将尽力提供示例数据

我在R中处理调查数据,因此我有一个包含许多列和行的数据框。我创建了一个自定义函数来处理一些数据。我首先运行函数的脚本,以便将其加载到RStudio的工作区中。该函数有两个参数:

myfunction <- function(id, info){
  # various data processing
}
我想让R遍历每一行,并提供单元格的值作为myfunction中的两个参数:

# So for the first row, it should do
myfunction("1", "M")
# And the second:
myfunction("2", "F")
我得到的最接近的结果是:

a_ply(mydata, c(1,2), print)
  ID
1  1
2  2
3  3
4  4
  Gender
1   M
2   F
3   F
4   M
这似乎是在正确的方向上,但每当我把我的函数放在一个平台上,我就不能让它以我想要的方式工作。我收到以下错误消息:

Error in eval(expr, envir, enclos) : object 'X' not found
## Which I believe is actually an error from myfunction, which would mean the
## ID value is not passing through to it correctly
或者在使用不同版本的a_ply命令时,我会遇到以下错误:

Error in file(file, "rt") : invalid 'description' argument
提前感谢您的帮助,到目前为止,我已经阅读了这里的文档和许多其他帖子,但我似乎找不到任何解释。

(完成并结束问题):


你可以尝试
apply(mydata,1,function(x)myfunction(x[1],x[2])
我想我以前见过这个,也许我只是误解了它的意思。实际的myfunction是86行代码。整个函数是否需要在apply()中定义?尝试此操作后,它似乎确实可以工作。但是,我在myfunction的末尾有一个打印(“您的数据已成功处理”)。运行应用程序后,我得到以下输出:
[1]“您的数据已成功处理。”[1]“您的数据已成功处理。”[1]“您的数据已成功处理。”[1]“您的数据已成功处理。”[1]“您的数据已成功处理。”“您的数据已成功处理。”“您的数据已成功处理。”[4]“您的数据已成功处理。”
是否运行了8次?
apply
在mydata中的每一行上循环(因此为1)并为每次迭代输出函数的输出。请参见:
?apply
对,但mydata只有四行。因此它应该只运行四次——其他四次迭代从何而来?
Error in file(file, "rt") : invalid 'description' argument
apply(mydata,1, function(x) myfunction(x[1],x[2]))