Soy novato, así que imagino que será muy fácil de resolver... Dataset$total <- with(Dataset, if (col>1) 5 else 6) Quiero guardar en la columna total, un 5 si col es mayor que 1 y sino que guarde un 6. Sólo me compara el primer dato de la primera fila, y lo copia para todas las demás. No me lo calcula fila a fila. ¿? [[alternative HTML version deleted]]
Hola. prueba con ifelse(col>1, 5, 6) en vez de if El 27/01/16 a las 15:24, david santolaria escribió:> Soy novato, así que imagino que será muy fácil de resolver... > > Dataset$total <- with(Dataset, if (col>1) 5 else 6) > > Quiero guardar en la columna total, un 5 si col es mayor que 1 y sino que > guarde un 6. > > Sólo me compara el primer dato de la primera fila, y lo copia para todas > las demás. No me lo calcula fila a fila. > > ¿? > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es
if es escalar (solo actúa con un elemento). ifelse es vectorial (actúa con todos los elementos). Por eso te funcionará la solución propuesta por Cañadas. El 27/01/2016 a las 15:24, david santolaria escribió:> Soy novato, así que imagino que será muy fácil de resolver... > > Dataset$total <- with(Dataset, if (col>1) 5 else 6) > > Quiero guardar en la columna total, un 5 si col es mayor que 1 y sino que > guarde un 6. > > Sólo me compara el primer dato de la primera fila, y lo copia para todas > las demás. No me lo calcula fila a fila. > > ¿? > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es[[alternative HTML version deleted]]
Dataset$total<- sapply(Dataset$col, function(x){ ifelse(x>1, 5, 6) Un saludo. El Miércoles 27 de enero de 2016 17:22, Andrés González Carmona <andresgc en ugr.es> escribió: if es escalar (solo actúa con un elemento). ifelse es vectorial (actúa con todos los elementos). Por eso te funcionará la solución propuesta por Cañadas. El 27/01/2016 a las 15:24, david santolaria escribió:> Soy novato, así que imagino que será muy fácil de resolver... > > Dataset$total <- with(Dataset, if (col>1) 5 else 6) > > Quiero guardar en la columna total, un 5 si col es mayor que 1 y sino que > guarde un 6. > > Sólo me compara el primer dato de la primera fila, y lo copia para todas > las demás. No me lo calcula fila a fila. > > ¿? > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es[[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es [[alternative HTML version deleted]]