在R中使用多个更改参数应用函数 [英] Apply Function Using Multiple Changing Arguments in R

查看:342
本文介绍了在R中使用多个更改参数应用函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在引用R中数据框中多个列的所有行上应用一个函数.例如,如果我有一个名为"data"的数据框,其中包含三个变量"var1","var2"和"var3",而我想对每行应用一个函数:

I want to apply a function over all rows referencing multiple columns in a data frame in R. So, for example, if I have a data frame called "data" with three variables "var1", "var2", and "var3" and I want to apply a function to each row:

myfunc <- function(var1, var2, var3)){
result <- var1*var2*var3
return(result)
}

那么伪代码将是:

apply(data, myfunc(data$var1, data$var2, data$var3))

但是,此代码不起作用,因为数据是一个数据帧,而不是一个向量,并且lapply似乎不能采用多个向量.我该如何工作?我可以接受任何类型的解决方案,但是我必须能够引用多个变化的参数并调用预定义的函数.

This code does not work, however, because data is a data frame, not a vector, and lapply does not seem able to take more than one vector. How do I make this work? I am open to any type of solution, but I have to be able to reference multiple changing arguments and call a predefined function.

推荐答案

无需应用:

#define function
myfunc <- function(var1, var2, var3){
  result <- var1*var2*var3
  return(result)
}
#dummy data
dat <- data.frame(A=c(1,2,3),B=c(4,5,6),C=c(7,8,9))

#test function
myfunc(dat$A,dat$B,dat$C)

#output
[1]  28  80 162

这篇关于在R中使用多个更改参数应用函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆