Chame a função apply-like em cada linha de dataframe com vários argumentos de cada linha
Eu tenho um dataframe com várias colunas. Para cada linha no dataframe, desejo chamar uma função na linha e a entrada da função está usando várias colunas dessa linha. Por exemplo, digamos que eu tenha esses dados e este testFunc que aceita dois argumentos:
> 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
Digamos que eu queira aplicar este testFunc às colunas xez. Então, para a linha 1 eu quero 1 + 5, e para a linha 2 eu quero 2 + 6. Existe uma maneira de fazer isso sem escrever um loop for, talvez com a família de funções apply?
Eu tentei isso:
> 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
Mas tem erro, alguma ideia?
EDITAR: a função real que eu quero chamar não é uma soma simples, mas é poder. Eu usei a + b apenas por exemplo. O objetivo final é ser capaz de fazer algo assim (escrito em pseudocódigo):
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
))
onde o resultado é um vetor de saídas para power.t.test para cada linha de df.