То есть: «Применить функцию двух аргументов кумулятивно к элементам последовательности слева направо, чтобы уменьшить последовательность до одного значения».
Есть ли в R что-то эквивалентное функции reduce() в Python?
Ответы (2)
Да, это называется Reduce
.
Пример:
Reduce(paste, LETTERS[1:5])
[1] "A B C D E"
Reduce(sum, 1:5)
[1] 15
#List arguments work the same
Reduce(sum, list(1, 2, 3, 4, 5))
[1] 15
Дополнительные сведения о функциональном программировании в R см. в файле справки для ?funprog
, псевдонима для ?Reduce
.
person
Andrie
schedule
14.09.2011
+1 за то, что заставил меня выплюнуть кофе из носа после прочтения первой строчки.
- person John; 14.09.2011
@John Джон Весь рабочий день... Доброго утра, и тебе!
- person Andrie; 14.09.2011
Reduce("+",1:5)
немного яснее, что он работает с функцией с двумя аргументами.
- person James; 14.09.2011
просто примечание о
"+"
против sum
:Reduce(sum, list(c(1,2), c(3,4))) = 10
, а Reduce("+", list(c(1,2), c(3,4))) = c(4,6)
- person Colbert Sesanker; 11.03.2013
Почему в верхнем регистре?
- person Valentas; 03.05.2016
Да. См. http://stat.ethz.ch/R-manual/R-patched/library/base/html/funprog.html
person
Dan D.
schedule
14.09.2011