Вызовите функцию, подобную apply, в каждой строке информационного кадра с несколькими аргументами из каждой строки

У меня есть датафрейм с несколькими столбцами. Для каждой строки в фрейме данных я хочу вызвать функцию в строке, и для ввода функции используются несколько столбцов из этой строки. Например, допустим, у меня есть эти данные и этот testFunc, который принимает два аргумента:

> 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?

Я попробовал это:

> 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

Но есть ошибки, есть идеи?

РЕДАКТИРОВАТЬ: Фактическая функция, которую я хочу вызвать, - это не простая сумма, а power.t.test. Я использовал + B только для примера. Конечная цель - сделать что-то вроде этого (написано в псевдокоде):

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
))

где результатом является вектор выходных данных для power.t.test для каждой строки df.

Ответы на вопрос(12)

Ваш ответ на вопрос