У меня сейчас есть цикл for, который я хочу векторизовать.Он рассчитывает процентное значение 6 в для различных подвекторов.Начиная с [1: 100], [1: 200], ... всегда с шагом в 100 шагов.
rolls.max <- 100000
a <- sample(1:6, size=rolls.max, replace=TRUE)
sixes.ratio <- c()
for(i in 1:(rolls.max/100)) {
sixes.count <- table(a[1:(i*100)])[6]
ratio <- sixes.count/(i*100)
sixes.ratio <- c(sixes.ratio, ratio)
}
Я думаю, что самая сложная часть - это получить счетчик 6 для каждогоподвектор.Я попробовал это:
rolls.max <- 100000
a <- matrix(sample(1:6, size=rolls.max, replace=TRUE))
subset.creator <- function(x, c) if (c!=0 && c%%100==0) { as.vector(table(x[1:(rolls[c/100])]))[6] }
sixes.count <- mapply(subset.creator, a, col(a))
# Converting the other lines won't be difficult I think
Хочу, чтобы я хотел добиться с помощью этого, чтобы создать подвектор a для каждого 100-го вызова функции subset.creator.Затем создайте таблицу и возьмите шестой столбец, чтобы получить число 6, а затем извлеките только число, используя as.vector()
Но это просто дает мне мусор вместо вектора с числом 6.