Oi, amigos!
Estou escrevendo um código para preencher uma matriz 116x3000.
O que quero: quando as colunas forem diferentes de 1,4,7,…, 2998 E que tem como valor observado na linha igual a 1, substituir por 0.5.
Para fins de exemplo, vamos supor que os meus dados são esses.
library(tidyverse)
mt_probabilidade <- runif(n = 348000,min = 0,max = 1)
mt_uniforme <- runif(length(mt_probabilidade))
live <- as.numeric((mt_probabilidade > mt_uniforme)) %>%
matrix(nrow = 116) %>%
apply(MARGIN = 2, cumprod)
As colunas que NÃO quero preencher seguem uma PA.
coluna_selecionadas <- seq(from = 1, to = 3000, by = 3)
# 1, 4, 7, ..., 2998
for (i in 1:nrow(live)) {
for (j in 1:ncol(live)) {
if(live[i,j] != live[i,coluna_selecionadas] & live[i,j]== 1) {
live[i,j] <- 0.5
}
print(paste('Linha=',i,'Coluna=',j))
}
}
Quando eu termino de executar o código e abro a matriz de resultados, verifico que a matriz preencheu até as colunas QUE não mencionei.
O warning sinaliza o seguinte output:
In if (live[i, j] != live[i, coluna_aposentados] & live[i, … :
a condição tem comprimento > 1 e somente o primeiro elemento será usado
Se alguém puder me dar uma luz e sugerir algo para corrigir o código, será muito bem vindo.