Re: [R-es] Bucle de regresiones

2021-11-15 Por tema Griera-yandex
Hola:

Sí, muchas gracias! Funciona. Aunque no entiendo como en el bucle original no 
coge el contenido de X1 si en la fórmula aparece "X1". Son cosas que me cuesta 
entender de R. Que le vamos ha hacer!

Gracias de nuevo y saludos.


On Mon, 15 Nov 2021 13:57:51 +0100
Proyecto R-UCA  wrote:

> Buenas,
> 
> En el bucle estás asignando a la variable X el valor "X1" y no el
> contenido de la variable X.
> 
> A ver si esto te sirve:
> 
> for (Y in 1:2)
> {
> for (X in 3:4)
> {
> cat ("Y:", names(df)[Y], "X:", names(df)[X], "\n")
> print (summary (lm (df[,Y] ~ df[,X] + SE + ED,
> data <- df)))
> }
> }
> 
> Un saludo.
> 
> El lun, 15-11-2021 a las 13:20 +0100, Griera-yandex escribió:
> > Hola, buenos dias:
> > 
> > Estoy intentando hacer una serie de regresiones en las que la "y" y una
> > de las "x", son diferentes en cada regresión. Además, hay unos
> > predictores constantes. Un ejemplo seria de los datos seria:
> > 
> > N <- 100
> > 
> > # x1, y1
> > set.seed(1234)
> > x1 <- sample(1:100, N, replace <- TRUE)
> > mean(x1);sd(x1)
> > y1 <- x1 + 2 + 1.5*rnorm(length(x1))
> > 
> > # x2, y2
> > set.seed(5678)
> > x2 <- 1:N
> > x2 <- sample(1:100, N, replace <- TRUE)
> > mean(x2);sd(x2)
> > y2 <- x2 + 2 + 1.5*rnorm(length(x2))
> > 
> > df <- data.frame (Y1 <- y1
> > , Y2 <- y2
> > , X1 <- x1
> > , X2 <- x2
> > , SE <- factor(rbinom(N, 1, .5))
> > , ED <- sample(20:50, N, replace <- TRUE)
> > )
> > 
> > Intento hacer dos bucles para cambiar la "y" y las "x":
> > 
> > YL <- c ("Y1", "Y2")
> > XL <- c ("X1", "X2")
> > for (Y in YL)
> > {
> > for (X in XL)
> > {
> > cat ("Y:", Y, "X:", X, "\n")
> > print (summary (lm (Y ~ X + SE + ED,
> > data <- df)))
> > }
> > }
> > 
> > Pero al ejecutarlo, da el error:
> > 
> > Error in model.frame.default(formula = Y ~ X + SE + ED, data = df,
> > drop.unused.levels = TRUE) : 
> >   variable lengths differ (found for 'SE')
> > 
> > Parece como si no entendiera que la Y es "Y1" y la X es "X1" de df. 
> > 
> > ¿Alguna ayuda de como se puedes solucionas?
> > 
> > Muchas gracias a todos!
> > 
> >  
> > 
> > ___
> > R-help-es mailing list
> > R-help-es@r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
> 
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] Bucle de regresiones

2021-11-15 Por tema Proyecto R-UCA
Buenas,

En el bucle estás asignando a la variable X el valor "X1" y no el
contenido de la variable X.

A ver si esto te sirve:

for (Y in 1:2)
{
for (X in 3:4)
{
cat ("Y:", names(df)[Y], "X:", names(df)[X], "\n")
print (summary (lm (df[,Y] ~ df[,X] + SE + ED,
data <- df)))
}
}

Un saludo.

El lun, 15-11-2021 a las 13:20 +0100, Griera-yandex escribió:
> Hola, buenos dias:
> 
> Estoy intentando hacer una serie de regresiones en las que la "y" y una
> de las "x", son diferentes en cada regresión. Además, hay unos
> predictores constantes. Un ejemplo seria de los datos seria:
> 
> N <- 100
> 
> # x1, y1
> set.seed(1234)
> x1 <- sample(1:100, N, replace <- TRUE)
> mean(x1);sd(x1)
> y1 <- x1 + 2 + 1.5*rnorm(length(x1))
> 
> # x2, y2
> set.seed(5678)
> x2 <- 1:N
> x2 <- sample(1:100, N, replace <- TRUE)
> mean(x2);sd(x2)
> y2 <- x2 + 2 + 1.5*rnorm(length(x2))
> 
> df <- data.frame (Y1 <- y1
> , Y2 <- y2
> , X1 <- x1
> , X2 <- x2
> , SE <- factor(rbinom(N, 1, .5))
> , ED <- sample(20:50, N, replace <- TRUE)
> )
> 
> Intento hacer dos bucles para cambiar la "y" y las "x":
> 
> YL <- c ("Y1", "Y2")
> XL <- c ("X1", "X2")
> for (Y in YL)
> {
> for (X in XL)
> {
> cat ("Y:", Y, "X:", X, "\n")
> print (summary (lm (Y ~ X + SE + ED,
> data <- df)))
> }
> }
> 
> Pero al ejecutarlo, da el error:
> 
> Error in model.frame.default(formula = Y ~ X + SE + ED, data = df,
> drop.unused.levels = TRUE) : 
>   variable lengths differ (found for 'SE')
> 
> Parece como si no entendiera que la Y es "Y1" y la X es "X1" de df. 
> 
> ¿Alguna ayuda de como se puedes solucionas?
> 
> Muchas gracias a todos!
> 
>  
> 
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] BUCLE REGRESION

2019-02-07 Por tema Carlos Ortega
Hola,

Muy probablemente encontrarás más ayuda en la lista si en vez de plantear
tu duda como si nos dieras una asignación, mostraras un poco más de
"netetiquette".
Dijeras cuál es tu problema, qué has podido plantear y si ya has hecho
algo, qué problema estás teniendo, adjuntaras datos de ejemplo..

Y yendo a tu problema,

   - ¿has sido capaz de hacer este cálculo que quieres con un primer
   ejemplo/caso?.
   - ¿Sabes que en R para realizar un modelo lineal tienes la función
   "lm()"?.
   - Y que con la función "coefficients()" puedes obtener la pendiente y la
   ordenada en el origen?.
   - Tu problema entonces se reduce a seleccionar un subconjunto de datos,
   usar "lm()" y "coefficients()" y guardar el resultado de coefficients en
   cada ciclo.

Seguro que en tu siguiente duda, tu nivel de "netetiquette" será mucho
mayor... :-).

Saludos,
Carlos Ortega
www.qualityexcellence.es


El jue., 7 feb. 2019 a las 19:52, Jhon Vidal Figueroa Céspedes (<
asroden...@gmail.com>) escribió:

> Implementar una rutina en R que permita estimar un modelo de regresión
> lineal omitiendo un registro. Use el archivo de datos Datos_Trabajo_R.xlsx.
>
> Observación: si el archivo contiene n registros, entonces se estimarán n
> regresiones con (n-1) registros cada una.
>
> El programa deberá mostrar un gráfico de dispersión cuyo eje X sería el
> número de regresión y el eje Y el valor de la pendiente de la regresión.
> ¿Cuál es el valor de la pendiente más grande y más pequeña?, ¿A qué
> registros están asociados estas pendientes?
> Calcule la pendiente promedio de todas las regresiones; y compare está
> pendiente con la pendiente de la regresión con todas las observaciones.
>
> setwd("D:/ECONOMÍA UNFV/Software/R/R intermedio")
>
> library(readxl)
>
> data2 = read_excel("Datos_Trabajo_R 1.xlsx")
> data1 = read_excel("Datos_Trabajo_R 2.xlsx")
>
> # regresion lineal
> n = 15
> k = 1
> numreg= c()
> penreg= c()
> for(i in 1:n){
> Y = data.matrix(data1["Y"], rownames.force = NA)
> Y = Y[1:n,]
> uno = matrix(1,n,1)
> X = cbind(uno,data.matrix(data1["X"], rownames.force = NA))
> X = X[1:n,]
> # estimacion de los parametros
> B = solve(t(X)%*%X)%*%t(X)%*%Y
> B= B[-2,]
> pendreg = B
> numreg  = n
> data1["Y"]
> data1["Y[1,]"]
> }
>
> problema que tengo es de los valores de las pendientes, pero me falta que
> este sea un bucle y haga lo que me pida es decir que la regresion numero 1
> pendiente tal y asi sucesivamente
>
> [[alternative HTML version deleted]]
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>


-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] Bucle for que se salte los errores

2017-06-12 Por tema Javier Marcuzzi
Estimado Jesús Para Fernández

Pero no es lo mismo, usted pidió para cuándo i vale 0, el tryCatch es para 
todos los casos en donde no se puede porque hay un error, justo coloco en el 
buscador la definición para compartirla y encuentro un ejemplo muy apropiado.

# tryCatch.Rscript -- experiments with tryCatch
 
# Get any arguments
arguments <- commandArgs(trailingOnly=TRUE)
a <- arguments[1]
 
# Define a division function that can issue warnings and errors
myDivide <- function(d, a) {
  if (a == 'warning') {
    return_value <- 'myDivide warning result'
warning("myDivide warning message")
  } else if (a == 'error') {
    return_value <- 'myDivide error result'
stop("myDivide error message")
  } else {
    return_value = d / as.numeric(a)
  }
  return(return_value)
}
 
# Evalute the desired series of expressions inside of tryCatch
result <- tryCatch({
 
  b <- 2
  c <- b^2
  d <- c+2
  if (a == 'suppress-warnings') {
    e <- suppressWarnings(myDivide(d,a))
  } else {
    e <- myDivide(d,a) # 6/a
  }
  f <- e + 100
 
}, warning = function(war) {
 
  # warning handler picks up where error was generated
  print(paste("MY_WARNING:  ",war))
  b <- "changing 'b' inside the warning handler has no effect"
  e <- myDivide(d,0.1) # =60
  f <- e + 100
  return(f)
 
}, error = function(err) {
 
  # error handler picks up where error was generated
  print(paste("MY_ERROR:  ",err))
  b <- "changing 'b' inside the error handler has no effect"
  e <- myDivide(d,0.01) # =600
  f <- e + 100
  return(f)
 
}, finally = {
 
  print(paste("a =",a))
  print(paste("b =",b))
  print(paste("c =",c))
  print(paste("d =",d))
  # NOTE:  Finally is evaluated in the context of of the inital
  # NOTE:  tryCatch block and 'e' will not exist if a warning
  # NOTE:  or error occurred.
  #print(paste("e =",e))
 
}) # END tryCatch
 
print(paste("result =",result))

Javier Rubén Marcuzzi

De: Jesús Para Fernández
Enviado: lunes, 12 de junio de 2017 9:57
Para: Javier Marcuzzi; Xavi tibau alberdi; guillermo.vi...@uv.es
CC: Lista R
Asunto: Re: [R-es] Bucle for que se salte los errores

He encontrado la respuesta. EL ejemplo que puse era trivial, ya que es obvio 
que if(i ==0) entonces next, pero me referia a sin saber si va a ser error el 
modelo o no. 

Para esto he encontrado la solución 
for(i in -3:3){
tryCatch({
  z<-1/i
>   z<-z*z
>       modelo<-lm(z~1)

}, error=function(e){print("es un error"})

}


Gracias de todas maneras!
Jesús


De: R-help-es  en nombre de Javier Marcuzzi 

Enviado: lunes, 12 de junio de 2017 14:48
Para: Xavi tibau alberdi; guillermo.vi...@uv.es
Cc: Lista R
Asunto: Re: [R-es] Bucle for que se salte los errores 
 
Case también podría ir, en realidad cualquier función de condicional, hay algo 
de gusto personal también (yo prefiero if).

Javier Rubén Marcuzzi

De: Xavi tibau alberdi
Enviado: lunes, 12 de junio de 2017 9:46
Para: guillermo.vi...@uv.es
CC: Lista R
Asunto: Re: [R-es] Bucle for que se salte los errores

Otra opcio es  no incluir en 0

For (i in c(-2,-1,1,2)


El 12 jun. 2017 14:43,  escribió:

Hola,

Creo que sería añadir if(i == 0) next

Saludos,

Guillermo

> Buenas, �como puedo hacer que el bucle for se salte el error que salta
cuando i<-0 en el codigo que paso??
>
>
>
> count <- 0
> for(i in -2:2){
>   z<-1/i
>   z<-z*z
>   modelo<-lm(z~1)
> }
>
>
> Gracias
>
>
>
>
>
>   [[alternative HTML version deleted]]
>
>

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es 
Página de Información de R-help-es
stat.ethz.ch
Esta es una lista de correo para solicitar ayuda sobre R en español y se 
entiende como un complemento social a la documentación, libros, etc. 
disponibles sobre R ...


    [[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es 
Página de Información de R-help-es
stat.ethz.ch
Esta es una lista de correo para solicitar ayuda sobre R en español y se 
entiende como un complemento social a la documentación, libros, etc. 
disponibles sobre R ...



    [[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
Página de Información de R-help-es
stat.ethz.ch
Esta es una lista de correo para solicitar ayuda sobre R en español y se 
entiende como un complemento social a la documentación, libros, etc. 
disponibles sobre R ...

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

Re: [R-es] Bucle for que se salte los errores

2017-06-12 Por tema Jesús Para Fernández
He encontrado la respuesta. EL ejemplo que puse era trivial, ya que es obvio 
que if(i ==0) entonces next, pero me referia a sin saber si va a ser error el 
modelo o no.

Para esto he encontrado la solución

for(i in -3:3){

tryCatch({

  z<-1/i
>   z<-z*z
>   modelo<-lm(z~1)


}, error=function(e){print("es un error"})


}



Gracias de todas maneras!
Jesús



De: R-help-es  en nombre de Javier Marcuzzi 

Enviado: lunes, 12 de junio de 2017 14:48
Para: Xavi tibau alberdi; guillermo.vi...@uv.es
Cc: Lista R
Asunto: Re: [R-es] Bucle for que se salte los errores

Case también podría ir, en realidad cualquier función de condicional, hay algo 
de gusto personal también (yo prefiero if).

Javier Rubén Marcuzzi

De: Xavi tibau alberdi
Enviado: lunes, 12 de junio de 2017 9:46
Para: guillermo.vi...@uv.es
CC: Lista R
Asunto: Re: [R-es] Bucle for que se salte los errores

Otra opcio es  no incluir en 0

For (i in c(-2,-1,1,2)


El 12 jun. 2017 14:43,  escribió:

Hola,

Creo que sería añadir if(i == 0) next

Saludos,

Guillermo

> Buenas, �como puedo hacer que el bucle for se salte el error que salta
cuando i<-0 en el codigo que paso??
>
>
>
> count <- 0
> for(i in -2:2){
>   z<-1/i
>   z<-z*z
>   modelo<-lm(z~1)
> }
>
>
> Gracias
>
>
>
>
>
>   [[alternative HTML version deleted]]
>
>

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
Página de Información de 
R-help-es<https://stat.ethz.ch/mailman/listinfo/r-help-es>
stat.ethz.ch
Esta es una lista de correo para solicitar ayuda sobre R en español y se 
entiende como un complemento social a la documentación, libros, etc. 
disponibles sobre R ...




[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
Página de Información de 
R-help-es<https://stat.ethz.ch/mailman/listinfo/r-help-es>
stat.ethz.ch
Esta es una lista de correo para solicitar ayuda sobre R en español y se 
entiende como un complemento social a la documentación, libros, etc. 
disponibles sobre R ...





[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
Página de Información de 
R-help-es<https://stat.ethz.ch/mailman/listinfo/r-help-es>
stat.ethz.ch
Esta es una lista de correo para solicitar ayuda sobre R en español y se 
entiende como un complemento social a la documentación, libros, etc. 
disponibles sobre R ...



[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

Re: [R-es] Bucle for que se salte los errores

2017-06-12 Por tema Javier Marcuzzi
Case también podría ir, en realidad cualquier función de condicional, hay algo 
de gusto personal también (yo prefiero if).

Javier Rubén Marcuzzi

De: Xavi tibau alberdi
Enviado: lunes, 12 de junio de 2017 9:46
Para: guillermo.vi...@uv.es
CC: Lista R
Asunto: Re: [R-es] Bucle for que se salte los errores

Otra opcio es  no incluir en 0

For (i in c(-2,-1,1,2)


El 12 jun. 2017 14:43,  escribió:

Hola,

Creo que sería añadir if(i == 0) next

Saludos,

Guillermo

> Buenas, �como puedo hacer que el bucle for se salte el error que salta
cuando i<-0 en el codigo que paso??
>
>
>
> count <- 0
> for(i in -2:2){
>   z<-1/i
>   z<-z*z
>   modelo<-lm(z~1)
> }
>
>
> Gracias
>
>
>
>
>
>   [[alternative HTML version deleted]]
>
>

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

Re: [R-es] Bucle for que se salte los errores

2017-06-12 Por tema Xavi tibau alberdi
Otra opcio es  no incluir en 0

For (i in c(-2,-1,1,2)


El 12 jun. 2017 14:43,  escribió:

Hola,

Creo que sería añadir if(i == 0) next

Saludos,

Guillermo

> Buenas, �como puedo hacer que el bucle for se salte el error que salta
cuando i<-0 en el codigo que paso??
>
>
>
> count <- 0
> for(i in -2:2){
>   z<-1/i
>   z<-z*z
>   modelo<-lm(z~1)
> }
>
>
> Gracias
>
>
>
>
>
>   [[alternative HTML version deleted]]
>
>

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

Re: [R-es] Bucle for que se salte los errores

2017-06-12 Por tema Javier Marcuzzi
Estimado Jesús Para Fernández

Usando un if dentro de for

Algo como 
If i<- 0  no hacer , else hacer

Javier Rubén Marcuzzi

De: Jesús Para Fernández
Enviado: lunes, 12 de junio de 2017 9:29
Para: r-help-es@r-project.org
Asunto: [R-es] Bucle for que se salte los errores

Buenas, �como puedo hacer que el bucle for se salte el error que salta cuando 
i<-0 en el codigo que paso??



count <- 0
for(i in -2:2){
  z<-1/i
  z<-z*z
  modelo<-lm(z~1)
}


Gracias





[[alternative HTML version deleted]]



[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

Re: [R-es] Bucle for que se salte los errores

2017-06-12 Por tema Guillermo.Vinue
Hola,

Creo que sería añadir if(i == 0) next

Saludos,

Guillermo 

> Buenas, �como puedo hacer que el bucle for se salte el error que salta cuando 
> i<-0 en el codigo que paso??
> 
> 
> 
> count <- 0
> for(i in -2:2){
>   z<-1/i
>   z<-z*z
>   modelo<-lm(z~1)
> }
> 
> 
> Gracias
> 
> 
> 
> 
> 
>   [[alternative HTML version deleted]]
> 
> 

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

Re: [R-es] BUCLE

2015-03-25 Por tema David Contreras
Buen día,

De antemano gracias por la respuesta tan oportuna, anoche después de muchas
pruebas lo logré, dejo el código por si otra persona se enfrenta al mismo
inconveniente:

a<-1

  while (a<=nf){
data [a,]<-sample(MuestraS,replace=T)
if (a>1){
if (sum(duplicated(data[1:a, ]))!=0){a<-a}
else {a<-a+1}
}else {a<-a+1}
  }

Saludos,


David C.

El 25 de marzo de 2015, 6:42, Reverté Calvet, Gerard 
escribió:

>  Hola David, prueba con esto:
>
> a<-1
>   for (a in 1:30) {
> b<-0
> while(b>0){b<-sum(duplicated(data[1:a,]));data
> [a,]<-sample(MuestraS,replace=T)}
>   }
>
>
> Gerard Reverté
>
>
>
>
> -Missatge original-
> De: R-help-es [mailto:r-help-es-boun...@r-project.org
> ] En nom de David Contreras
> Enviat: dimecres, 25 / març / 2015 06:23
> Per a: r-help-es
> Tema: [R-es] BUCLE
>
>
> Buena noche a todos,
>
> Nuevamente requiero de su ayuda con algo puntual:
>
> 1. Tengo en el vector Muestras:
>
>   rm(list = ls())
>   set.seed(2085089)# Fija Datos
>
> data<-matrix(-1,30,ncol=10)
>
> > MuestraS
>  [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
> [1,]100011011 1
>
> Ahora, dentro de un bucle for voy a generar muestras aleatorias, pero
> requiero que en ese mismo proceso, apenas se tenga una muestra duplicada
> esta se sobrescriba, no he logrado que el bucle se quede en una posición y
> de esta manera generar una nueva muestra que no este duplicada.
> Para hace lo descrito en el parrafo anterior uso el siguiente código:
>
>   a<-1
>   for (a in 1:30) {
> data [a,]<-sample(MuestraS,replace=T)
> if (sum(duplicated(data[1:a, ]))!=0){a<-a}
> else {a<-a+1}
>   }
>
> No esta haciendo lo que requiero, se detecta el duplicado pero la muestra
> se generar y continua hasta llegar a 30 dejando el duplicado.
> No se si deba usar el bucle for o deberia cambiar por un while, pero no lo
> he podido lograr de ninguna de las dos formas.
>
> Un saludo, agradezco su colaboración con el tema.
>
>
> David C.
>
> [[alternative HTML version deleted]]
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
>
> *Avís legal/Aviso legal*
> La present informació s'envia únicament a la persona a la que va dirigida
> i pot contenir informació privilegiada o de caràcter confidencial.
> Qualsevol modificació, retransmissió, difusió o altre ús d'aquesta
> informació per persones o entitats diferents a la persona a la que va
> dirigida està prohibida. Si vostè l'ha rebut per error, si us plau contacti
> amb el remitent i esborri el missatge de qualsevol ordinador. En el cas que
> aquest missatge vagi a ser contestat per la mateixa via, ha de saber-se que
> la seva resposta podria ser coneguda per tercers a l'entrar a la xarxa. Per
> això, si el missatge inclou contrasenyes, números de targetes de crèdit o
> qualsevol altra informació que vostè consideri confidencial, seria més
> segur contestar per una altra via i cancel·lar la seva transmissió.
> L'Ajuntament de Mataró i els seus organismes dependents no poden assumir la
> responsabilitat derivada del fet de què terceres persones puguin arribar a
> conèixer el contingut d'aquest missatge durant la seva transmissió.
> --
> La presente información se envía únicamente a la persona a la que va
> dirigida y puede contener información privilegiada o de carácter
> confidencial. Cualquier modificación, retransmisión, difusión u otro uso de
> esta información por persones o entidades diferentes a la persona a la que
> va dirigida está prohibida. Si usted la ha recibido por error, por favor
> contacte con el remitente y borre el mensaje. En el caso de que este
> mensaje vaya a ser contestado por la misma vía, ha de saberse que su
> respuesta podría ser conocida por terceros al entrar en la red. Por este
> motivo, si el mensaje incluye contraseñas, números de tarjetas de crédito o
> cualquier otra información que considere confidencial, sería más seguro
> contestar por otra vía y cancelar su transmisión. El Ayuntamiento de Mataró
> y sus organismos dependientes no pueden asumir la responsabilidad derivada
> del hecho de que terceras personas puedan llegar a conocer el contenido de
> este mensaje durante su transmisión.
>
>  <#14c50bdc0d0f9412_>
>

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] BUCLE

2015-03-25 Por tema Reverté Calvet , Gerard
Hola David, prueba con esto:

a<-1
  for (a in 1:30) {
b<-0
while(b>0){b<-sum(duplicated(data[1:a,]));data 
[a,]<-sample(MuestraS,replace=T)}
  }


Gerard Reverté




-Missatge original-
De: R-help-es [mailto:r-help-es-boun...@r-project.org] En nom de David Contreras
Enviat: dimecres, 25 / març / 2015 06:23
Per a: r-help-es
Tema: [R-es] BUCLE

Buena noche a todos,

Nuevamente requiero de su ayuda con algo puntual:

1. Tengo en el vector Muestras:

  rm(list = ls())
  set.seed(2085089)# Fija Datos

data<-matrix(-1,30,ncol=10)

> MuestraS
 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]100011011 1

Ahora, dentro de un bucle for voy a generar muestras aleatorias, pero requiero 
que en ese mismo proceso, apenas se tenga una muestra duplicada esta se 
sobrescriba, no he logrado que el bucle se quede en una posición y de esta 
manera generar una nueva muestra que no este duplicada.
Para hace lo descrito en el parrafo anterior uso el siguiente código:

  a<-1
  for (a in 1:30) {
data [a,]<-sample(MuestraS,replace=T)
if (sum(duplicated(data[1:a, ]))!=0){a<-a}
else {a<-a+1}
  }

No esta haciendo lo que requiero, se detecta el duplicado pero la muestra se 
generar y continua hasta llegar a 30 dejando el duplicado.
No se si deba usar el bucle for o deberia cambiar por un while, pero no lo he 
podido lograr de ninguna de las dos formas.

Un saludo, agradezco su colaboración con el tema.


David C.

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es



Avís legal/Aviso legal

La present informació s'envia únicament a la persona a la que va dirigida i pot 
contenir informació privilegiada o de caràcter confidencial. Qualsevol 
modificació, retransmissió, difusió o altre ús d'aquesta informació per 
persones o entitats diferents a la persona a la que va dirigida està prohibida. 
Si vostè l'ha rebut per error, si us plau contacti amb el remitent i esborri el 
missatge de qualsevol ordinador. En el cas que aquest missatge vagi a ser 
contestat per la mateixa via, ha de saber-se que la seva resposta podria ser 
coneguda per tercers a l'entrar a la xarxa. Per això, si el missatge inclou 
contrasenyes, números de targetes de crèdit o qualsevol altra informació que 
vostè consideri confidencial, seria més segur contestar per una altra via i 
cancel·lar la seva transmissió. L'Ajuntament de Mataró i els seus organismes 
dependents no poden assumir la responsabilitat derivada del fet de què terceres 
persones puguin arribar a conèixer el contingut d'aquest missatge durant la 
seva transmissió.

La presente información se envía únicamente a la persona a la que va dirigida y 
puede contener información privilegiada o de carácter confidencial. Cualquier 
modificación, retransmisión, difusión u otro uso de esta información por 
persones o entidades diferentes a la persona a la que va dirigida está 
prohibida. Si usted la ha recibido por error, por favor contacte con el 
remitente y borre el mensaje. En el caso de que este mensaje vaya a ser 
contestado por la misma vía, ha de saberse que su respuesta podría ser conocida 
por terceros al entrar en la red. Por este motivo, si el mensaje incluye 
contraseñas, números de tarjetas de crédito o cualquier otra información que 
considere confidencial, sería más seguro contestar por otra vía y cancelar su 
transmisión. El Ayuntamiento de Mataró y sus organismos dependientes no pueden 
asumir la responsabilidad derivada del hecho de que terceras personas puedan 
llegar a conocer el contenido de este mensaje durante su transmisión.


___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] BUCLE

2015-03-25 Por tema Jorge I Velez
David:Por que no pruebas generando las 30 muestras _unicas_ de antemano
y sobre estas calcular lo que necesitas? --JIV


2015-03-25 16:22 GMT+11:00 David Contreras :

> Buena noche a todos,
>
> Nuevamente requiero de su ayuda con algo puntual:
>
> 1. Tengo en el vector Muestras:
>
>   rm(list = ls())
>   set.seed(2085089)# Fija Datos
>
> data<-matrix(-1,30,ncol=10)
>
> > MuestraS
>  [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
> [1,]100011011 1
>
> Ahora, dentro de un bucle for voy a generar muestras aleatorias, pero
> requiero que en ese mismo proceso, apenas se tenga una muestra duplicada
> esta se sobrescriba, no he logrado que el bucle se quede en una posici�n y
> de esta manera generar una nueva muestra que no este duplicada.
> Para hace lo descrito en el parrafo anterior uso el siguiente c�digo:
>
>   a<-1
>   for (a in 1:30) {
> data [a,]<-sample(MuestraS,replace=T)
> if (sum(duplicated(data[1:a, ]))!=0){a<-a}
> else {a<-a+1}
>   }
>
> No esta haciendo lo que requiero, se detecta el duplicado pero la muestra
> se generar y continua hasta llegar a 30 dejando el duplicado.
> No se si deba usar el bucle for o deberia cambiar por un while, pero no lo
> he podido lograr de ninguna de las dos formas.
>
> Un saludo, agradezco su colaboraci�n con el tema.
>
>
> David C.
>
> [[alternative HTML version deleted]]
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] bucle

2014-07-10 Por tema Jose Luis Cañadas Reche
Hola.

La alternativa de Isidro es la que yo uso normalmente en este tipo de 
cosas. Si algún caso que no cumpla ninguna de las condiciones te quedará 
con cinr=NA.

Saludos

El 10/07/14 17:10, juan(uned) escribió:
> Eva muchas gracias por la contestación pero hay muchos casos que no
> cumplen la condición y cinr toma el valor NA porque inr toma valores
> fuera de los intervalos que pongo pero rango_inr1 siempre toma uno de
> los 11 valores, además sum(table(rango_inr1)) es 3738. Podías concretar
> la opción que comentas de ifelse().
> Muchas gracias a Jorge y a Isidro. Probaré la alternativa de Isidro.
>
> Un cordial saludo,
>
> Juan
>
> El 10/07/2014 9:37, Eva Prieto Castro escribió:
>> Hola, Juan:
>>
>> Eso sólo es posible si exactamente para uno de los valores de i no se
>> cumple ninguna de las condiciones, con lo cual no llegas a incorporar
>> valor en cinr.
>>
>> Puedes utilizar if else de modo que te emita un mensaje informando del
>> "i" que no supera ninguno de los if.
>>
>> Un saludo.
>> Eva
>>
>>
>> El Jueves 10 de julio de 2014 8:58, juan(uned) 
>> escribió:
>>
>>
>> Estimados compañeros, hoy me ha surgido una duda, quizás trivial, pero
>> que no encuentro sentido. Tengo un bucle con el siguiente código:
>>
>> for (i in 1:n)
>> {
>> if (rango_inr1[i]==1 & (inr[i]>= 2 & inr[i]<= 3)) cinr[i]<-1
>> if (rango_inr1[i]==2 & (inr[i]>= 2.5 & inr[i]<= 3.5)) cinr[i]<-2
>> if (rango_inr1[i]==3 & (inr[i]>= 2 & inr[i]<= 2.9)) cinr[i]<-3
>> if (rango_inr1[i]==4 & (inr[i]>= 2.25 & inr[i]<= 3.5)) cinr[i]<-4
>> if (rango_inr1[i]==5 & (inr[i]>= 2.2 & inr[i]<= 3.25)) cinr[i]<-5
>> if (rango_inr1[i]==6 & (inr[i]>= 2 & inr[i]<= 3.5)) cinr[i]<-6
>> if (rango_inr1[i]==7 & (inr[i]>= 2 & inr[i]<= 4)) cinr[i]<-7
>> if (rango_inr1[i]==8 & (inr[i]>= 2 & inr[i]<= 2.6)) cinr[i]<-8
>> if (rango_inr1[i]==9 & (inr[i]>= 2 & inr[i]<= 2.5)) cinr[i]<-9
>> if (rango_inr1[i]==10 & (inr[i]>= 2 & inr[i]<=2.8)) cinr[i]<-10
>> if (rango_inr1[i]==11 & (inr[i]>= 2.5 & inr[i]<= 4)) cinr[i]<-11
>> }
>>
>> donde n vale 3738 e i naturalmente 3738. Pues bien, resulta que la
>> variable creada cinr tiene 3737 casos. ¿Qué puede estar ocurriendo?. He
>> comprobado los casos de rango_inr1 y de inr y son 3738.
>> ¿Qué estoy haciendo mal?.
>>
>> Un cordial saludo,
>>
>> Juan
>>
>> -- 
>> Juan Antonio Gil Pascual
>> Profesor de Metodología de la Investigación Cuantitativa
>> correo: j...@edu.uned.es 
>> web: www.uned.es/personal/jgil
>>
>> Dpto. MIDE
>> Facultad de Educación
>> c/Juan del Rosal, 14 desp. 2.72
>> 28040 Madrid
>> Tel,f. 91 3987279
>> Fax. 91 3987288
>>
>> ___
>> R-help-es mailing list
>> R-help-es@r-project.org 
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es


[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] bucle

2014-07-10 Por tema juan(uned)
Eva muchas gracias por la contestación pero hay muchos casos que no 
cumplen la condición y cinr toma el valor NA porque inr toma valores 
fuera de los intervalos que pongo pero rango_inr1 siempre toma uno de 
los 11 valores, además sum(table(rango_inr1)) es 3738. Podías concretar 
la opción que comentas de ifelse().
Muchas gracias a Jorge y a Isidro. Probaré la alternativa de Isidro.

Un cordial saludo,

Juan

El 10/07/2014 9:37, Eva Prieto Castro escribió:
> Hola, Juan:
>
> Eso sólo es posible si exactamente para uno de los valores de i no se 
> cumple ninguna de las condiciones, con lo cual no llegas a incorporar 
> valor en cinr.
>
> Puedes utilizar if else de modo que te emita un mensaje informando del 
> "i" que no supera ninguno de los if.
>
> Un saludo.
> Eva
>
>
> El Jueves 10 de julio de 2014 8:58, juan(uned)  
> escribió:
>
>
> Estimados compañeros, hoy me ha surgido una duda, quizás trivial, pero
> que no encuentro sentido. Tengo un bucle con el siguiente código:
>
> for (i in 1:n)
> {
> if (rango_inr1[i]==1 & (inr[i]>= 2 & inr[i]<= 3)) cinr[i]<-1
> if (rango_inr1[i]==2 & (inr[i]>= 2.5 & inr[i]<= 3.5)) cinr[i]<-2
> if (rango_inr1[i]==3 & (inr[i]>= 2 & inr[i]<= 2.9)) cinr[i]<-3
> if (rango_inr1[i]==4 & (inr[i]>= 2.25 & inr[i]<= 3.5)) cinr[i]<-4
> if (rango_inr1[i]==5 & (inr[i]>= 2.2 & inr[i]<= 3.25)) cinr[i]<-5
> if (rango_inr1[i]==6 & (inr[i]>= 2 & inr[i]<= 3.5)) cinr[i]<-6
> if (rango_inr1[i]==7 & (inr[i]>= 2 & inr[i]<= 4)) cinr[i]<-7
> if (rango_inr1[i]==8 & (inr[i]>= 2 & inr[i]<= 2.6)) cinr[i]<-8
> if (rango_inr1[i]==9 & (inr[i]>= 2 & inr[i]<= 2.5)) cinr[i]<-9
> if (rango_inr1[i]==10 & (inr[i]>= 2 & inr[i]<=2.8)) cinr[i]<-10
> if (rango_inr1[i]==11 & (inr[i]>= 2.5 & inr[i]<= 4)) cinr[i]<-11
> }
>
> donde n vale 3738 e i naturalmente 3738. Pues bien, resulta que la
> variable creada cinr tiene 3737 casos. ¿Qué puede estar ocurriendo?. He
> comprobado los casos de rango_inr1 y de inr y son 3738.
> ¿Qué estoy haciendo mal?.
>
> Un cordial saludo,
>
> Juan
>
> -- 
> Juan Antonio Gil Pascual
> Profesor de Metodología de la Investigación Cuantitativa
> correo: j...@edu.uned.es 
> web: www.uned.es/personal/jgil
>
> Dpto. MIDE
> Facultad de Educación
> c/Juan del Rosal, 14 desp. 2.72
> 28040 Madrid
> Tel‚f. 91 3987279
> Fax. 91 3987288
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org 
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>

-- 
Juan Antonio Gil Pascual
Profesor de Metodología de la Investigación Cuantitativa
correo: j...@edu.uned.es
web: www.uned.es/personal/jgil

Dpto. MIDE
Facultad de Educación
c/Juan del Rosal, 14 desp. 2.72
28040 Madrid
Tel‚f. 91 3987279
Fax. 91 3987288


[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] bucle

2014-07-10 Por tema Jorge I Velez
Hola Juan Antonio,

Has pensado considerar una aproximacion diferente?  De ser asi, explora
?cut y
?car:::recode.

Saludos,
Jorge.-



2014-07-10 16:58 GMT+10:00 juan(uned) :

> Estimados compañeros, hoy me ha surgido una duda, quizás trivial, pero que
> no encuentro sentido. Tengo un bucle con el siguiente código:
>
> for (i in 1:n)
> {
> if (rango_inr1[i]==1 & (inr[i]>= 2 & inr[i]<= 3)) cinr[i]<-1
> if (rango_inr1[i]==2 & (inr[i]>= 2.5 & inr[i]<= 3.5)) cinr[i]<-2
> if (rango_inr1[i]==3 & (inr[i]>= 2 & inr[i]<= 2.9)) cinr[i]<-3
> if (rango_inr1[i]==4 & (inr[i]>= 2.25 & inr[i]<= 3.5)) cinr[i]<-4
> if (rango_inr1[i]==5 & (inr[i]>= 2.2 & inr[i]<= 3.25)) cinr[i]<-5
> if (rango_inr1[i]==6 & (inr[i]>= 2 & inr[i]<= 3.5)) cinr[i]<-6
> if (rango_inr1[i]==7 & (inr[i]>= 2 & inr[i]<= 4)) cinr[i]<-7
> if (rango_inr1[i]==8 & (inr[i]>= 2 & inr[i]<= 2.6)) cinr[i]<-8
> if (rango_inr1[i]==9 & (inr[i]>= 2 & inr[i]<= 2.5)) cinr[i]<-9
> if (rango_inr1[i]==10 & (inr[i]>= 2 & inr[i]<=2.8)) cinr[i]<-10
> if (rango_inr1[i]==11 & (inr[i]>= 2.5 & inr[i]<= 4)) cinr[i]<-11
> }
>
> donde n vale 3738 e i naturalmente 3738. Pues bien, resulta que la
> variable creada cinr tiene 3737 casos. ¿Qué puede estar ocurriendo?. He
> comprobado los casos de rango_inr1 y de inr y son 3738.
> ¿Qué estoy haciendo mal?.
>
> Un cordial saludo,
>
> Juan
>
> --
> Juan Antonio Gil Pascual
> Profesor de Metodología de la Investigación Cuantitativa
> correo: j...@edu.uned.es
> web: www.uned.es/personal/jgil
>
> Dpto. MIDE
> Facultad de Educación
> c/Juan del Rosal, 14 desp. 2.72
> 28040 Madrid
> Tel'f. 91 3987279
> Fax. 91 3987288
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] bucle

2014-07-10 Por tema Isidro Hidalgo
De todas formas, es mejor (y más rápido) no usar un bucle y asignar
directamente:

cinr = rep(NA, 3738)
cinr[rango_inr1==1 & (inr>= 2 & inr<= 3)] <- 1
cinr[rango_inr1==2 & (inr>= 2.5 & inr<= 3.5)] <- 2
cinr[rango_inr1==3 & (inr>= 2 & inr<= 2.9)] <- 3
cinr[rango_inr1==4 & (inr>= 2.25 & inr<= 3.5)] <- 4
cinr[rango_inr1==5 & (inr>= 2.2 & inr<= 3.25)] <- 5
cinr[rango_inr1==6 & (inr>= 2 & inr<= 3.5)] <- 6
cinr[rango_inr1==7 & (inr>= 2 & inr<= 4)] <- 7
cinr[rango_inr1==8 & (inr>= 2 & inr<= 2.6)] <- 8
cinr[rango_inr1==9 & (inr>= 2 & inr<= 2.5)] <- 9
cinr[rango_inr1==10 & (inr>= 2 & inr<= 2.8)] <- 10
cinr[rango_inr1==11 & (inr>= 2.5 & inr<= 4)] <- 11)

Un saludo.

Isidro Hidalgo Arellano
Observatorio Regional de Empleo
Consejería de Empleo y Economía
http://www.jccm.es




> -Mensaje original-
> De: r-help-es-boun...@r-project.org [mailto:r-help-es-bounces@r-
> project.org] En nombre de juan(uned)
> Enviado el: jueves, 10 de julio de 2014 8:59
> Para: r-help-es@r-project.org
> Asunto: [R-es] bucle
>
> Estimados compañeros, hoy me ha surgido una duda, quizás trivial, pero
> que no encuentro sentido. Tengo un bucle con el siguiente código:
>
> for (i in 1:n)
> {
> if (rango_inr1[i]==1 & (inr[i]>= 2 & inr[i]<= 3)) cinr[i]<-1 if
> (rango_inr1[i]==2 & (inr[i]>= 2.5 & inr[i]<= 3.5)) cinr[i]<-2 if
> (rango_inr1[i]==3 & (inr[i]>= 2 & inr[i]<= 2.9)) cinr[i]<-3 if
> (rango_inr1[i]==4 & (inr[i]>= 2.25 & inr[i]<= 3.5)) cinr[i]<-4 if
> (rango_inr1[i]==5 & (inr[i]>= 2.2 & inr[i]<= 3.25)) cinr[i]<-5 if
> (rango_inr1[i]==6 & (inr[i]>= 2 & inr[i]<= 3.5)) cinr[i]<-6 if
> (rango_inr1[i]==7 & (inr[i]>= 2 & inr[i]<= 4)) cinr[i]<-7 if
> (rango_inr1[i]==8 & (inr[i]>= 2 & inr[i]<= 2.6)) cinr[i]<-8 if
> (rango_inr1[i]==9 & (inr[i]>= 2 & inr[i]<= 2.5)) cinr[i]<-9 if
> (rango_inr1[i]==10 & (inr[i]>= 2 & inr[i]<=2.8)) cinr[i]<-10 if
> (rango_inr1[i]==11 & (inr[i]>= 2.5 & inr[i]<= 4)) cinr[i]<-11 }
>
> donde n vale 3738 e i naturalmente 3738. Pues bien, resulta que la
> variable creada cinr tiene 3737 casos. ¿Qué puede estar ocurriendo?. He
> comprobado los casos de rango_inr1 y de inr y son 3738.
> ¿Qué estoy haciendo mal?.
>
> Un cordial saludo,
>
> Juan
>
> --
> Juan Antonio Gil Pascual
> Profesor de Metodología de la Investigación Cuantitativa
> correo: j...@edu.uned.es
> web: www.uned.es/personal/jgil
>
> Dpto. MIDE
> Facultad de Educación
> c/Juan del Rosal, 14 desp. 2.72
> 28040 Madrid
> Tel‚f. 91 3987279
> Fax. 91 3987288
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] bucle

2014-07-10 Por tema Eva Prieto Castro


Juan,

Prueba a utilizar for (i in 0:(n-1))

A lo mejor sólo estás comprobando los (n-1) casos.

Eva


El Jueves 10 de julio de 2014 9:37, Eva Prieto Castro  
escribió:
 


Hola, Juan:

Eso sólo es posible si exactamente para uno de los valores de i no se cumple 
ninguna de las condiciones, con lo cual no llegas a incorporar valor en cinr.

Puedes utilizar if else de modo que te emita un mensaje informando del "i" que 
no supera ninguno de los if.

Un saludo.
Eva


El Jueves 10 de julio de 2014 8:58, juan(uned)  escribió:
 


Estimados compañeros, hoy me ha surgido una duda, quizás trivial, pero 
que no encuentro sentido. Tengo un bucle con el siguiente código:

for (i in 1:n)
{
if (rango_inr1[i]==1 & (inr[i]>= 2 & inr[i]<= 3)) cinr[i]<-1
if (rango_inr1[i]==2 & (inr[i]>= 2.5 & inr[i]<= 3.5)) cinr[i]<-2
if (rango_inr1[i]==3 & (inr[i]>= 2 & inr[i]<= 2.9)) cinr[i]<-3
if (rango_inr1[i]==4
 & (inr[i]>= 2.25 & inr[i]<= 3.5)) cinr[i]<-4
if (rango_inr1[i]==5 & (inr[i]>= 2.2 & inr[i]<= 3.25)) cinr[i]<-5
if (rango_inr1[i]==6 & (inr[i]>= 2 & inr[i]<= 3.5)) cinr[i]<-6
if (rango_inr1[i]==7 & (inr[i]>= 2 & inr[i]<= 4)) cinr[i]<-7
if (rango_inr1[i]==8 & (inr[i]>= 2 & inr[i]<= 2.6)) cinr[i]<-8
if (rango_inr1[i]==9 & (inr[i]>= 2 & inr[i]<= 2.5)) cinr[i]<-9
if (rango_inr1[i]==10 & (inr[i]>= 2 & inr[i]<=2.8)) cinr[i]<-10
if (rango_inr1[i]==11 & (inr[i]>= 2.5 & inr[i]<= 4)) cinr[i]<-11
}

donde n vale 3738 e i naturalmente 3738. Pues bien, resulta que la 
variable creada cinr tiene 3737 casos. ¿Qué puede estar ocurriendo?. He 
comprobado los casos de rango_inr1 y de inr y son 3738.
¿Qué estoy haciendo mal?.

Un cordial saludo,

Juan

-- 
Juan Antonio Gil
 Pascual
Profesor de Metodología de la Investigación Cuantitativa
correo: j...@edu.uned.es
web: www.uned.es/personal/jgil

Dpto. MIDE
Facultad de Educación
c/Juan del Rosal, 14 desp. 2.72
28040 Madrid
Tel‚f. 91 3987279
Fax. 91 3987288

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] bucle

2014-07-10 Por tema Eva Prieto Castro
Hola, Juan:

Eso sólo es posible si exactamente para uno de los valores de i no se cumple 
ninguna de las condiciones, con lo cual no llegas a incorporar valor en cinr.

Puedes utilizar if else de modo que te emita un mensaje informando del "i" que 
no supera ninguno de los if.

Un saludo.
Eva


El Jueves 10 de julio de 2014 8:58, juan(uned)  escribió:
 


Estimados compañeros, hoy me ha surgido una duda, quizás trivial, pero 
que no encuentro sentido. Tengo un bucle con el siguiente código:

for (i in 1:n)
{
if (rango_inr1[i]==1 & (inr[i]>= 2 & inr[i]<= 3)) cinr[i]<-1
if (rango_inr1[i]==2 & (inr[i]>= 2.5 & inr[i]<= 3.5)) cinr[i]<-2
if (rango_inr1[i]==3 & (inr[i]>= 2 & inr[i]<= 2.9)) cinr[i]<-3
if (rango_inr1[i]==4 & (inr[i]>= 2.25 & inr[i]<= 3.5)) cinr[i]<-4
if (rango_inr1[i]==5 & (inr[i]>= 2.2 & inr[i]<= 3.25)) cinr[i]<-5
if (rango_inr1[i]==6 & (inr[i]>= 2 & inr[i]<= 3.5)) cinr[i]<-6
if (rango_inr1[i]==7 & (inr[i]>= 2 & inr[i]<= 4)) cinr[i]<-7
if (rango_inr1[i]==8 & (inr[i]>= 2 & inr[i]<= 2.6)) cinr[i]<-8
if (rango_inr1[i]==9 & (inr[i]>= 2 & inr[i]<= 2.5)) cinr[i]<-9
if (rango_inr1[i]==10 & (inr[i]>= 2 & inr[i]<=2.8)) cinr[i]<-10
if (rango_inr1[i]==11 & (inr[i]>= 2.5 & inr[i]<= 4)) cinr[i]<-11
}

donde n vale 3738 e i naturalmente 3738. Pues bien, resulta que la 
variable creada cinr tiene 3737 casos. ¿Qué puede estar ocurriendo?. He 
comprobado los casos de rango_inr1 y de inr y son 3738.
¿Qué estoy haciendo mal?.

Un cordial saludo,

Juan

-- 
Juan Antonio Gil Pascual
Profesor de Metodología de la Investigación Cuantitativa
correo: j...@edu.uned.es
web: www.uned.es/personal/jgil

Dpto. MIDE
Facultad de Educación
c/Juan del Rosal, 14 desp. 2.72
28040 Madrid
Tel‚f. 91 3987279
Fax. 91 3987288

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] bucle

2014-07-10 Por tema Isidro Hidalgo
Probablemente tienes un caso en el que ninguna de las 11 condiciones se
cumple... Fíjate con los datos simulados, hay 1686 casos fuera de las
condiciones que defines:

set.seed(12345)
rango_inr1 = ceiling(runif(3738,0,11))
inr = runif(3738,2,4)
n=3738
cinr = rep(NA, 3738)
for (i in 1:n)
{
 if (rango_inr1[i]==1 & (inr[i]>= 2 & inr[i]<= 3))
  cinr[i]<-1
 if (rango_inr1[i]==2 & (inr[i]>= 2.5 & inr[i]<= 3.5))
  cinr[i]<-2
 if (rango_inr1[i]==3 & (inr[i]>= 2 & inr[i]<= 2.9))
  cinr[i]<-3
 if (rango_inr1[i]==4 & (inr[i]>= 2.25 & inr[i]<= 3.5))
  cinr[i]<-4
 if (rango_inr1[i]==5 & (inr[i]>= 2.2 & inr[i]<= 3.25))
  cinr[i]<-5
 if (rango_inr1[i]==6 & (inr[i]>= 2 & inr[i]<= 3.5))
  cinr[i]<-6
 if (rango_inr1[i]==7 & (inr[i]>= 2 & inr[i]<= 4))
  cinr[i]<-7
 if (rango_inr1[i]==8 & (inr[i]>= 2 & inr[i]<= 2.6))
  cinr[i]<-8
 if (rango_inr1[i]==9 & (inr[i]>= 2 & inr[i]<= 2.5))
  cinr[i]<-9
 if (rango_inr1[i]==10 & (inr[i]>= 2 & inr[i]<=2.8))
  cinr[i]<-10
 if (rango_inr1[i]==11 & (inr[i]>= 2.5 & inr[i]<= 4))
  cinr[i]<-11
}
table(cinr)
sum(is.na(cinr))

Un saludo.

Isidro Hidalgo Arellano
Observatorio Regional de Empleo
Consejería de Empleo y Economía
http://www.jccm.es


> -Mensaje original-
> De: r-help-es-boun...@r-project.org [mailto:r-help-es-bounces@r-
> project.org] En nombre de juan(uned)
> Enviado el: jueves, 10 de julio de 2014 8:59
> Para: r-help-es@r-project.org
> Asunto: [R-es] bucle
>
> Estimados compañeros, hoy me ha surgido una duda, quizás trivial, pero
> que no encuentro sentido. Tengo un bucle con el siguiente código:
>
> for (i in 1:n)
> {
> if (rango_inr1[i]==1 & (inr[i]>= 2 & inr[i]<= 3)) cinr[i]<-1 if
> (rango_inr1[i]==2 & (inr[i]>= 2.5 & inr[i]<= 3.5)) cinr[i]<-2 if
> (rango_inr1[i]==3 & (inr[i]>= 2 & inr[i]<= 2.9)) cinr[i]<-3 if
> (rango_inr1[i]==4 & (inr[i]>= 2.25 & inr[i]<= 3.5)) cinr[i]<-4 if
> (rango_inr1[i]==5 & (inr[i]>= 2.2 & inr[i]<= 3.25)) cinr[i]<-5 if
> (rango_inr1[i]==6 & (inr[i]>= 2 & inr[i]<= 3.5)) cinr[i]<-6 if
> (rango_inr1[i]==7 & (inr[i]>= 2 & inr[i]<= 4)) cinr[i]<-7 if
> (rango_inr1[i]==8 & (inr[i]>= 2 & inr[i]<= 2.6)) cinr[i]<-8 if
> (rango_inr1[i]==9 & (inr[i]>= 2 & inr[i]<= 2.5)) cinr[i]<-9 if
> (rango_inr1[i]==10 & (inr[i]>= 2 & inr[i]<=2.8)) cinr[i]<-10 if
> (rango_inr1[i]==11 & (inr[i]>= 2.5 & inr[i]<= 4)) cinr[i]<-11 }
>
> donde n vale 3738 e i naturalmente 3738. Pues bien, resulta que la
> variable creada cinr tiene 3737 casos. ¿Qué puede estar ocurriendo?. He
> comprobado los casos de rango_inr1 y de inr y son 3738.
> ¿Qué estoy haciendo mal?.
>
> Un cordial saludo,
>
> Juan
>
> --
> Juan Antonio Gil Pascual
> Profesor de Metodología de la Investigación Cuantitativa
> correo: j...@edu.uned.es
> web: www.uned.es/personal/jgil
>
> Dpto. MIDE
> Facultad de Educación
> c/Juan del Rosal, 14 desp. 2.72
> 28040 Madrid
> Tel‚f. 91 3987279
> Fax. 91 3987288
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es