Вызовы функций в пределах lapply - PullRequest
0 голосов
/ 28 февраля 2019

Я относительный новичок с R и неоднократно выполнял функции на нескольких матрицах.Совсем недавно я начал использовать lapply для упрощения своего кодирования.

Итак, теперь у меня есть список, содержащий шесть матриц, причем каждая матрица имеет одинаковые размеры.Я успешно строю свои собственные функции и применяю их к матрице таким образом:

matrixlist.new <- lapply(matrixlist.old,Mycustomfunction)

Но, несмотря на чтение по предмету, я изо всех сил пытаюсь заставить простую уже существующую функцию R работать в пределах лакомства.

Мой конкретный вопрос заключается в том, что я хотел бы извлечь максимальное значение из третьего столбца в каждой из моих матриц в новый список, который будет иметь одно значение для каждой из матриц в моем исходном списке.

Если бы у меня была единственная матрица, код был бы:

maxofcol3 <- max(matrix[,3])

Но как мне объединить эту простую функцию в lapply, не превращая этот простой код в пользовательскую функцию (что я мог бы сделать, нокажется, это не может быть самым простым подходом)?

Я перепробовал все виды комбинаций, но не могу разобраться в этом ...

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 28 февраля 2019

Поскольку нам нравятся воспроизводимые примеры ...

matrixlist.old <- rep(list(matrix(data=rnorm(9),3)),times=3)

lapply(matrixlist.old,function(x) max(x[,3]))
#> [[1]]
#> [1] 0.828354
#> 
#> [[2]]
#> [1] 0.828354
#> 
#> [[3]]
#> [1] 0.828354

sapply(matrixlist.old,function(x) max(x[,3]))
#> [1] 0.828354 0.828354 0.828354

Создано в 2019-02-28 пакетом представлением (v0.2.1)

...