Я бегу outer
на функцию, которая возвращает список, и я жду его, чтобы вернуть массив списков, так как документация говорит так:Используя внешний, чтобы произвести массив списков
The outer product of the arrays X and Y is the array A with dimension c(dim(X), dim(Y)) where element A[c(arrayindex.x, arrayindex.y)] = FUN(X[arrayindex.x], Y[arrayindex.y], ...).
Однако следующий код выдает ошибку:
outer(1:5, 1:5, Vectorize(function(x, y) list(x=x, y=y)))
#Error in outer(1:5, 1:5, Vectorize(function(x, y) list(x = x, y = y))) :
# dims [product 25] do not match the length of object [50]
кажется, что outer
пытается сгладить свои списки, в то время как я хотел бы, чтобы они были неповрежденными. Кажется, нет никакого параметра для управления этим (в отличие от simplify
для sapply
). Что бы вы предложили? Мое единственное требование - сохранить по крайней мере два измерения для целей индексации по линии.
ли эта помощь 'наружная (1: 5, 1: 5 список, Vectorize (функция (х, у) (с (х = х, у = Y))))' или может быть 'внешняя (1: 5, 1: 5, Vectorize (список функций (x, y) (список (x = x, y = y)))) – akrun
На каком языке это? – Peter
@akrun Оба в порядке. У вас есть понимание, почему эта, казалось бы, избыточная оболочка 'list' или' c' изменяет внешнее поведение? – tonytonov