У меня есть очень большой dataframe ...Множественные применить аргументы с суммой значения функции
v.l.df <- data.frame(seq(0, 10, 0.0001),seq(0, 10, 0.0001),seq(0, 10, 0.0001))
... и функции с некоторыми, если отчетность и произведены расчеты ...
a.f <- function(cell_value,action){
if(action == 1){
cell_value * 1
}
else if(action == 2){
cell_value * 5
}
}
I теперь хочу применить эту функцию к первым двум столбцам моей строки v.l.df
и построить суммы возвратов. Таким образом, новые столбцы должны содержать (псевдокод):
new_col_1 new_col_2
a.f(v.l.df[1,1],1) + a.f(v.l.df[1,2],1) a.f(v.l.df[1,1],2) + a.f(v.l.df[1,2],2)
a.f(v.l.df[2,1],1) + a.f(v.l.df[2,2],1) a.f(v.l.df[2,1],2) + a.f(v.l.df[2,2],2)
...
Как это можно достичь? Я пытаюсь использовать несколько аргументов при использовании apply и сумма возвращаемых значений формирует функцию.
EDIT: Изменена функция примера. Должен ли возвращаться следующий
> a.f(2,1)
[1] 2
> a.f(2,2)
[1] 10
Что делает ваша функция? Поскольку он закодирован, он ничего не возвращает. Попробуйте запустить 'cell.test = 0.7',' action = 1' и 'a.f (cell.test)', если он вернет 100 или 70? – Bernardo
Извините, я упростил функцию неправильно. Я изменил функцию «a.f» в примере, и теперь она должна работать. – user3347232
- это первый элемент new_col_2, который должен быть 'a.f (v.l.df [1,1], 2) + a.f (v.l.df [1,2], 2) '? – vpipkt