Обычно в большинстве языков программирования объекты не присваиваются циклам for
, поскольку они не являются формально функциональными объектами.Один использует циклы для итеративного взаимодействия с существующими объектами.Однако R поддерживает семейство apply , которое сохраняет итеративные выходные данные для объектов такой же длины, что и входные данные.
Рассмотрим lapply
( l ist apply) для вывода списка илиsapply
( s подразумевается, применимо) для вывода матрицы:
# LIST OUTPUT
Twenty <- lapply(1:20, function(x) sample.int(6, 3, replace = TRUE))
# MATRIX OUTPUT
Twenty <- sapply(1:20, function(x) sample.int(6, 3, replace = TRUE))
А чтобы увидеть свои испытания, просто распечатайте объект
print(Twenty)
Но так как выникогда не используйте переменную итератора, x
, рассмотрите replicate
(обертку до sapply
, которая одним аргументом может вывести матрицу или список), которая получает аргументы размера и выражения (без входных данных или функций):
# MATRIX OUTPUT (DEFAULT)
Twenty <- replicate(20, sample.int(6, 3, replace = TRUE))
# LIST OUTPUT
Twenty <- replicate(20, sample.int(6, 3, replace = TRUE), simplify = FALSE)