Я новичок в R, и я работаю над функцией манипулирования набором данных.Обеспечение значений в матрице между заданным диапазоном?
У меня есть матрица значений 20 на 5, к которой я добавляю случайное число от -1 до 1. Как я могу обеспечить, чтобы все значения в матрице находились между 0-10 эффективным и быстрым способом (без использования цикла для проверки одного значения за раз).
Таковы правила:
- Если значение больше 10, изменить его на 10
- Если значение меньше thatn 0, изменить его на 0
Любой помощь приветствуется. Благодаря!
'матрица (образец (с (-1,1), размер = 100, заменить = TRUE), nrow = 20) 'может быть немного более простым –
Спасибо @Ben Bolker. :-) Улучшенный код: 'library (dplyr)' 'mRaw <- runif (100, 0, 10)%>% as.integer%>% matrix (nrow = 20, ncol = 5)' 'm1 < - матрица (образец (c (-1,1), размер = 100, replace = TRUE), nrow = 20) ' ' mAdded <- m1 + mRaw' 'mAdded [] <- pmax (0, pmin (10 , mAdded)) ' –
Я не против труб на их месте, но они, похоже, не приносят большой пользы здесь ... –