Я новый пользователь (~ 1 день) R. Я пытаюсь создать все 216 результатов трех бросков шестисторонней смерти. Дело в том, чтобы затем применить некоторую функцию к каждому триплету (скажем, к максимальной номинальной стоимости). Это то, что я придумал:создание матриц/использование внешних
mat <- matrix(numeric(0), ncol=3)
for (i in 1:6) {
for (j in 1:6) {
for (k in 1:6) {
mat <- rbind(mat, c(i, j, k))
}
}
}
# find maximum of each outcome
apply(mat, 1, max)
Есть лучше и более краткий способ сделать это с помощью R? я бы любил использовать outer
таким образом:
outer(1:6, outer(1:6, 1:6, max), max)
но он терпит неудачу с ошибкой
Ошибки в наружном (1: 6, 1: 6, максимум): DIMS [продукт 36] не соответствует длине объекта [1]
'внешняя()' имеет три аргумента/параметров. У вашего внешнего 'external()' есть только два. И для параметра функции не ссылайтесь на символ, 'max' - это нечто иное, чем' max. (некоторые функции, которые имеют параметр функции, допускают также строку символов, но не все) – jogo
@jogo, извините, что отсутствующая вещь 1: 6 была опечаткой. Но он по-прежнему не работает: 'external (внешний (1: 6, 1: 6, max), 1: 6, max)' вызывает ту же ошибку – Aky
@Aky Вы протестировали решения, размещенные ниже? – akrun