2016-09-18 4 views
2

Я хотел бы применить функцию так, чтобы для каждого цикла функция принимала новые входные параметры из строк набора данных и предоставляла отдельные результаты для каждого цикла.Повторяющаяся функция для каждой строки DataFrame

Допустим, у меня есть набор данных, как это:

df<-data.frame(A = 7:11, B = 1:5, C = 4:8, D = 10:14) 

Функция:

loop<-function(a,b,c,d){ 
sm <- sum(a,b,c,d) 
return(sm) 
} 

Я хотел бы автоматизировать следующий процесс, так что функция будет рассчитывать суммы для каждой строки отдельно для весь набор данных:

loop (df[1,1],df[1,2],df[1,3],df[1,4]) 
loop (df[2,1],df[3,2],df[3,3],df[3,4]) 
loop (df[3,1],df[3,2],df[3,3],df[3,4]) 
loop (df[4,1],df[4,2],df[4,3],df[4,4]) 
loop (df[5,1],df[5,2],df[5,3],df[5,4]) 

Я пытаюсь использовать apply FUNC однако я не могу это сделать должным образом. Может кто-нибудь посоветует мне решение? Спасибо.

+0

Или другой вариант 'уменьшить ("+", ДФ)' – akrun

+0

если вы хотите сохраните исходный df: '' df%>% mutate (ROWSUM = rowSums (.)) '' –

ответ

4

Использование rowSums

rowSums(df) 
#[1] 22 26 30 34 38 

Если вы все еще хотите использовать loop функцию, попробуйте этот

mapply(loop,df[,1],df[,2],df[,3],df[,4]) 
#[1] 22 26 30 34 38 
Смежные вопросы