首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用来自每行的多个参数对数据帧的每一行调用类似apply的函数

使用来自每行的多个参数对数据帧的每一行调用类似apply的函数
EN

Stack Overflow用户
提问于 2013-02-25 10:09:32
回答 12查看 287.9K关注 0票数 184

我有一个包含多列的数据帧。对于数据帧中的每一行,我想在该行上调用一个函数,该函数的输入使用该行中的多个列。例如,假设我有这个数据和这个接受两个参数的testFunc:

代码语言:javascript
复制
> df <- data.frame(x=c(1,2), y=c(3,4), z=c(5,6))
> df
  x y z
1 1 3 5
2 2 4 6
> testFunc <- function(a, b) a + b

假设我想将此testFunc应用于列x和z。因此,对于第1行,我希望使用1+5,对于第2行,我希望使用2+ 6。有没有一种方法可以在不编写for循环的情况下实现这一点,比如使用apply函数族?

我试过这个:

代码语言:javascript
复制
> df[,c('x','z')]
  x z
1 1 5
2 2 6
> lapply(df[,c('x','z')], testFunc)
Error in a + b : 'b' is missing

但是弄错了,有什么想法吗?

编辑:我要调用的实际函数不是一个简单的sum,而是power.t.test。我使用a+b只是为了举例说明。最终目标是能够做这样的事情(用伪代码编写):

代码语言:javascript
复制
df = data.frame(
    delta=c(delta_values), 
    power=c(power_values), 
    sig.level=c(sig.level_values)
)

lapply(df, power.t.test(delta_from_each_row_of_df, 
                        power_from_each_row_of_df, 
                        sig.level_from_each_row_of_df
))

其中,结果是每行df的power.t.test的输出向量。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15059076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档