while vectores usar switch pares loop funciones funcion estructura ejemplos control contador como r for-loop counter

usar - vectores en r



Aumenta el contador en un bucle for en R (1)

ifelse está vectorizado, por lo que no es necesario utilizar un for-loop aquí. Esta es la forma en que debes usarlo:

set.seed(10) x <- runif(20) f <- ifelse(x<0.5, ''a'', ''b'')

Luego use la table para contar la ocurrencia:

table(f) f a b 13 7

Para obtener n1 :

n1 <- table(f)[[''a'']]

EDITAR OP quiere cambiar la muestra de acuerdo a la ocurrencia de a y b. Deberías usar if y else ifelse . También debe preasignar memoria para el vector f.

n1 <- 0 ; n2 <- 0 N <- 20 f <- vector(mode=''character'',N) set.seed(10) x<- runif(N) for(i in seq(N)) { if (x[i] <0.5){ f[i] <- ''a'' n1 <- n1 +1 } else { f[i] <- ''b'' n2 <- n2 +1 } if((n1-n2)==2) x <- runif(N) ## condition to regenerate sample }

Hola a todos, tengo un problema con un contador que he creado en un bucle for. Aquí está el código.

n1<- 0 n2<- 0 n<- 20 f<- rep(NA,20) set.seed(10) x<- runif(20) for(i in 1:20) { f[i]<- ifelse(x[i]<0.5, ''a'', ''b'') if((n1-n2)==2) { break } if(f[i]==''a'') n1<- n1 + 1 else n2<- n2 + 1 # n1 counts a''s n2 counts b''s } [1] "b" "a" "a" "b" "a" "a" "a" NA NA NA NA NA NA NA NA NA NA NA NA NA

Como puede ver en el resultado, el número de a''s = 5 y b''s = 2. Pero cuando llamo a n1 y n2, devuelve 4 para n1, lo cual es incorrecto. ¿Porqué es eso? ¿Cómo me equivoco? Gracias por adelantado .

Comienzo a muestrear a''s y b con una probabilidad de 0.5 .20 total. En algún punto que no sé de antemano, el número de a - el número de b excede 2. Cuando esto sucede, quiero que la probabilidad de muestreo cambie a 0.2. Eso es lo que estoy tratando de lograr.