У меня есть кадр данных в R, который состоит из двух (числовых) столбцов, скажем А и В. Я хотел бы конструктору столбец, состоящий из элементоврекурсивная сумма плюс произведение в г
A1+B1
(A1+B1)*A2+B2
((A1+B1)*A2+B2)*A3+B3
...
Это, вероятно, это простой однострочный, но я этого не вижу.
Редактировать: удалил слово, обозначенное в заголовке, так как меня просто интересует любое элегантное решение (тупые, которые я могу сделать сам). В F # - который я больше знакомы с - это было бы что-то вроде (предполагается, что элементы будут находиться в списке как кортежей, который был бы более идиоматических):
ABlist |> List.fold (fun acc (a,b) -> acc*a+b) 1
Что еще что-то очень коротко и ясно , Я перетаскиваю это, потому что я R noob и не знаком с ним, но я где-то читал, что это функциональный язык, поэтому я бы предположил, что решение с точки зрения фрейма над кадром данных будет существовать?
Игнорирование вашего двусмысленного использования круглых скобок 'cumprod (A + B)'? – joran
Я проверю.Если это не сначала добавит элемент мудрый, а затем вычислит кумулятивный продукт из добавленного вектора, это может быть правильно. Почему мои круглые скобки неоднозначны? – Bram
Я вроде как предполагал, что вы _meant_ (A1 + B1) * (A2 + B2), но если нет, то то, что вы описываете, не может быть векционируемым. – joran