El problema puede estar en el no uso de suficientes paréntesis. Por ejemplo, con:> a=1 > b=0 > c=0la instrucción ifelse(((a>1) | (b=0) | (c=1) | (d=1)), 11, 22) da el resultado esperado: [1] 11 Pero si se omiten los paréntesis se llega a un error de interpretación: destino de la asignación se expande a un objeto fuera del lenguaje Espero que sirva Jorge El 26/2/14, daniel <daniel319 en gmail.com> escribió:> Priscila, > > Los NA aparecen porque en la condición: > > guaran$sp=="L.lucidum"|guaran$pap11 => "muerto"|guaran$pap06=="muerto"|guaran$pap01=="muerto"|guaran$pap96=="muerto" > > hay alguna columna que es NA. Por ejemplo en la línea 46: > > c.1 P.porphyria <NA> <NA> nuevo 34 38 157 44 NA > > la cuarta columan es pap96. Si los NA están en columnas que no son > evaluadas por la condición, no se debieran generan NA. No revisé caso por > caso para ver si esto se cumple pero hace sentido para mi. > > Para resolver el problema lo mejor es que sigas lo propuesto por Francisco > Viciana. > > Si lo que quieres es ignorar las columnas con NA y seguir buscando en las > otras entonces reemplaza los NA por otra variable en las columnas que usas > y terminado vuelve a poner en su lugar los NA. Ten mucho cuidado si haces > esto, y solo si lo permite el problema que tratas de resolver. > > Espero te sirva para entender por que aparecen los NA en tu ejemplo. > > Daniel Merino > > > > El 26 de febrero de 2014, 13:41, "Marcuzzi, Javier Rubén" < > javier.ruben.marcuzzi en gmail.com> escribió: > >> Hola >> >> No es lo mismo pero en mi caso personal la forma que utilizo se basa en >> el ejemplo de http://cran.r-project.org/doc/contrib/grafi3.pdf página >> 49, no usa el if pero también hay una condición para todos los >> verdaderos. >> >> No intenté en este caso en particular, habría que ver si también da >> problemas, pero como Carlos Ortega que sabe mucho dio una solución y >> como vos estas empezando no quiero confundirte, >> >> Javier Marcuzzi >> >> >> El 26/02/14 12:49, Carlos Ortega escribió: >> > Hola, >> > >> > No he encontrado la razón de que la explicación sea estrictamente la >> > presencia de NAs. >> > Por este contraejemplo: >> > >> >> val <- guaran[44,] >> >> val >> > parc. sp pap91 pap96 pap01 pap06 pap11 x y >> > 44 c.1 T.stans *<NA>* nuevo 47 muerto *<NA>* 149 52 >> >> ifelse( >> > + val$sp=="L.lucidum" | val$pap11 == "muerto" >> > + | val$pap06=="muerto" | val$pap01=="muerto" >> > + | val$pap96=="muerto", 1, 0 >> > + ) >> > [1] *1* *#Devuelve bien el valor el ifelse a pesar de que hay NAs.* >> >> val <- guaran[45,] >> >> val >> > parc. sp pap91 pap96 pap01 pap06 pap11 x y >> > 45 c.1 C.lilloi *<NA>* *<NA> *nuevo 54 53 159 42 >> >> ifelse( >> > + val$sp=="L.lucidum" | val$pap11 == "muerto" >> > + | val$pap06=="muerto" | val$pap01=="muerto" >> > + | val$pap96=="muerto", 1, 0 >> > + ) >> > [1] *NA* *# Pero en este otro caso que debería ser "1" devuelve un >> > "NA".* >> > >> > Al aplicar el "ifelse" es a partir de la fila 45 donde comienzan a >> aparecer >> > los "NA", aunque en múltiples filas anteriores hay valores NA. >> > >> > Pero sí que es cierto que al quitar todos los NAs el problema se >> resuelve. >> > El siguiente código quita los NA, aplica el ifelse creando la nueva >> columna >> > y vuelve a darte a ponerte los NAs que tenías al principio.... >> > >> > >> #------------------------------------------------------------------------- >> > # Sustituyo los NA por ZZ >> > guaran <- dat.in[,c(1:9)] >> > for (i in 1:dim(guaran)[2]) { >> > guaran[is.na(guaran[,i]),i] <- c("ZZ") >> > } >> > #head(guaran,25) >> > >> > #Compruebo que funciona el ifelse >> > guaran$datmatriz <- ifelse( >> > guaran$sp == "L.lucidum" | guaran$pap11 == "muerto" >> > | guaran$pap06 == "muerto" | guaran$pap01 == "muerto" >> > | guaran$pap96 == "muerto", 1, 0 >> > ) >> > #head(guaran,50) >> > >> > #Devuelvo el data.frame al estado original >> > # Pero con la columna del ifelse ya añadida y evaluada >> > for (i in 1:dim(guaran)[2]) { >> > guaran[guaran[,i]=="ZZ",i] <- NA >> > } >> > >> > #head(guaran,50) >> > >> #------------------------------------------------------------------------- >> > >> > >> > Saludos, >> > Carlos Ortega >> > www.qualityexcellence.es >> > >> > >> > >> > >> > El 26 de febrero de 2014, 15:23, Priscila Ana Powell < >> > priscilaapowell en gmail.com> escribió: >> > >> >> Hola gente!! Estoy empezando a trabajar con R, y no puedo resolver lo >> >> siguiente: >> >> >> >> Quiero crear una nueva variable (datmatriz) que toma el valor de 1 si: >> >> -la variable sp es igual a L.lucidum >> >> -alguna de las variables pap11, pap06, pap01, pap96 es igual a muerto. >> >> >> >> El script que utilicé es : >> >> >> >> guaran$datmatriz<-ifelse (guaran$sp=="L.lucidum"|guaran$pap11 =>> >> >> "muerto"|guaran$pap06=="muerto"|guaran$pap01=="muerto"|guaran$pap96=="muerto", >> >> 1, 0) >> >> >> >> Sin embargo, al observar datmatriz, tengo 0, 1 y NA, que no sé que los >> >> genera. >> >> >> >> Alguna idea para salvar el inconveniente? >> >> >> >> adjunto la matriz >> >> >> >> desde ya, muchas gracias!! >> >> >> >> >> >> saludos ! >> >> >> >> Priscila >> >> -- >> >> Priscila Ana Powell >> >> Instituto de Ecología Regional >> >> Facultad de Ciencias Naturales e Instituto Miguel Lillo >> >> Universidad Nacional de Tucumán >> >> Argentina >> >> >> >> _______________________________________________ >> >> R-help-es mailing list >> >> R-help-es en r-project.org >> >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >> >> >> >> > >> > >> > >> > _______________________________________________ >> > 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 >> >> > > > -- > Daniel > > [[alternative HTML version deleted]] > >
Hola, He probado la alternativa de los paréntesis... pero el problema sigue produciéndose a partir de la fila 45 como al principio...:> guaran$datif <- ifelse(+ ((guaran$sp == "L.lucidum") | (guaran$pap11 ="muerto") + | (guaran$pap06 == "muerto") | (guaran$pap01 == "muerto") + | (guaran$pap96 == "muerto")), 1, 0 + )> head(guaran,50)... 42 c.1 T.stans <NA> nuevo 35 muerto <NA> 153 52 1 43 c.1 P.porphyria <NA> nuevo 65 63 66 149 52 *0* 44 c.1 T.stans <NA> nuevo 47 muerto <NA> 149 52 *1* 45 c.1 C.lilloi <NA> <NA> nuevo 54 53 159 42 *NA* 46 c.1 P.porphyria <NA> <NA> nuevo 34 38 157 44 *NA* 47 c.1 R.apetala <NA> <NA> nuevo 32 34 157 49 NA 48 c.1 A.edulis <NA> <NA> nuevo 32 33 140 54 NA 49 c.1 A.edulis <NA> <NA> <NA> nuevo 32 154 53 NA 50 c.1 C.vernalis <NA> <NA> <NA> nuevo 36 156 54 NA Y el patrón de que aparezcan dos NAs contiguos tampoco es la razón, ya que hay casos anteriores que son procesados correctamente..(filas 4, 5 y 6 por ejemplo)...: 4 c.1 T.stans 35 36 muerto <NA> <NA> 158 57 *1* 5 c.1 T.stans 34 35 muerto <NA> <NA> 158 60 *1* 6 c.1 T.stans 40 muerto <NA> <NA> <NA> 147 57 *1* Saludos, Carlos Ortega www.qualityexcellence.es El 26 de febrero de 2014, 22:43, Jorge Miguel Garcia Fernandez < jm.garcia.fdz@gmail.com> escribió:> El problema puede estar en el no uso de suficientes paréntesis. Por > ejemplo, con: > > a=1 > > b=0 > > c=0 > > la instrucción > > ifelse(((a>1) | (b=0) | (c=1) | (d=1)), 11, 22) > > da el resultado esperado: > > [1] 11 > > Pero si se omiten los paréntesis se llega a un error de interpretación: > > destino de la asignación se expande a un objeto fuera del lenguaje > > Espero que sirva > > Jorge > > > > El 26/2/14, daniel <daniel319@gmail.com> escribió: > > Priscila, > > > > Los NA aparecen porque en la condición: > > > > guaran$sp=="L.lucidum"|guaran$pap11 => > > "muerto"|guaran$pap06=="muerto"|guaran$pap01=="muerto"|guaran$pap96=="muerto" > > > > hay alguna columna que es NA. Por ejemplo en la línea 46: > > > > c.1 P.porphyria <NA> <NA> nuevo 34 38 157 44 NA > > > > la cuarta columan es pap96. Si los NA están en columnas que no son > > evaluadas por la condición, no se debieran generan NA. No revisé caso por > > caso para ver si esto se cumple pero hace sentido para mi. > > > > Para resolver el problema lo mejor es que sigas lo propuesto por > Francisco > > Viciana. > > > > Si lo que quieres es ignorar las columnas con NA y seguir buscando en las > > otras entonces reemplaza los NA por otra variable en las columnas que > usas > > y terminado vuelve a poner en su lugar los NA. Ten mucho cuidado si haces > > esto, y solo si lo permite el problema que tratas de resolver. > > > > Espero te sirva para entender por que aparecen los NA en tu ejemplo. > > > > Daniel Merino > > > > > > > > El 26 de febrero de 2014, 13:41, "Marcuzzi, Javier Rubén" < > > javier.ruben.marcuzzi@gmail.com> escribió: > > > >> Hola > >> > >> No es lo mismo pero en mi caso personal la forma que utilizo se basa en > >> el ejemplo de http://cran.r-project.org/doc/contrib/grafi3.pdf página > >> 49, no usa el if pero también hay una condición para todos los > >> verdaderos. > >> > >> No intenté en este caso en particular, habría que ver si también da > >> problemas, pero como Carlos Ortega que sabe mucho dio una solución y > >> como vos estas empezando no quiero confundirte, > >> > >> Javier Marcuzzi > >> > >> > >> El 26/02/14 12:49, Carlos Ortega escribió: > >> > Hola, > >> > > >> > No he encontrado la razón de que la explicación sea estrictamente la > >> > presencia de NAs. > >> > Por este contraejemplo: > >> > > >> >> val <- guaran[44,] > >> >> val > >> > parc. sp pap91 pap96 pap01 pap06 pap11 x y > >> > 44 c.1 T.stans *<NA>* nuevo 47 muerto *<NA>* 149 52 > >> >> ifelse( > >> > + val$sp=="L.lucidum" | val$pap11 == "muerto" > >> > + | val$pap06=="muerto" | val$pap01=="muerto" > >> > + | val$pap96=="muerto", 1, 0 > >> > + ) > >> > [1] *1* *#Devuelve bien el valor el ifelse a pesar de que hay NAs.* > >> >> val <- guaran[45,] > >> >> val > >> > parc. sp pap91 pap96 pap01 pap06 pap11 x y > >> > 45 c.1 C.lilloi *<NA>* *<NA> *nuevo 54 53 159 42 > >> >> ifelse( > >> > + val$sp=="L.lucidum" | val$pap11 == "muerto" > >> > + | val$pap06=="muerto" | val$pap01=="muerto" > >> > + | val$pap96=="muerto", 1, 0 > >> > + ) > >> > [1] *NA* *# Pero en este otro caso que debería ser "1" devuelve un > >> > "NA".* > >> > > >> > Al aplicar el "ifelse" es a partir de la fila 45 donde comienzan a > >> aparecer > >> > los "NA", aunque en múltiples filas anteriores hay valores NA. > >> > > >> > Pero sí que es cierto que al quitar todos los NAs el problema se > >> resuelve. > >> > El siguiente código quita los NA, aplica el ifelse creando la nueva > >> columna > >> > y vuelve a darte a ponerte los NAs que tenías al principio.... > >> > > >> > > >> > #------------------------------------------------------------------------- > >> > # Sustituyo los NA por ZZ > >> > guaran <- dat.in[,c(1:9)] > >> > for (i in 1:dim(guaran)[2]) { > >> > guaran[is.na(guaran[,i]),i] <- c("ZZ") > >> > } > >> > #head(guaran,25) > >> > > >> > #Compruebo que funciona el ifelse > >> > guaran$datmatriz <- ifelse( > >> > guaran$sp == "L.lucidum" | guaran$pap11 => "muerto" > >> > | guaran$pap06 == "muerto" | guaran$pap01 => "muerto" > >> > | guaran$pap96 == "muerto", 1, 0 > >> > ) > >> > #head(guaran,50) > >> > > >> > #Devuelvo el data.frame al estado original > >> > # Pero con la columna del ifelse ya añadida y evaluada > >> > for (i in 1:dim(guaran)[2]) { > >> > guaran[guaran[,i]=="ZZ",i] <- NA > >> > } > >> > > >> > #head(guaran,50) > >> > > >> > #------------------------------------------------------------------------- > >> > > >> > > >> > Saludos, > >> > Carlos Ortega > >> > www.qualityexcellence.es > >> > > >> > > >> > > >> > > >> > El 26 de febrero de 2014, 15:23, Priscila Ana Powell < > >> > priscilaapowell@gmail.com> escribió: > >> > > >> >> Hola gente!! Estoy empezando a trabajar con R, y no puedo resolver lo > >> >> siguiente: > >> >> > >> >> Quiero crear una nueva variable (datmatriz) que toma el valor de 1 > si: > >> >> -la variable sp es igual a L.lucidum > >> >> -alguna de las variables pap11, pap06, pap01, pap96 es igual a > muerto. > >> >> > >> >> El script que utilicé es : > >> >> > >> >> guaran$datmatriz<-ifelse (guaran$sp=="L.lucidum"|guaran$pap11 => >> >> > >> > "muerto"|guaran$pap06=="muerto"|guaran$pap01=="muerto"|guaran$pap96=="muerto", > >> >> 1, 0) > >> >> > >> >> Sin embargo, al observar datmatriz, tengo 0, 1 y NA, que no sé que > los > >> >> genera. > >> >> > >> >> Alguna idea para salvar el inconveniente? > >> >> > >> >> adjunto la matriz > >> >> > >> >> desde ya, muchas gracias!! > >> >> > >> >> > >> >> saludos ! > >> >> > >> >> Priscila > >> >> -- > >> >> Priscila Ana Powell > >> >> Instituto de Ecología Regional > >> >> Facultad de Ciencias Naturales e Instituto Miguel Lillo > >> >> Universidad Nacional de Tucumán > >> >> Argentina > >> >> > >> >> _______________________________________________ > >> >> 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 > >> > >> > > > > > > -- > > Daniel > > > > [[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]]
Hola a todos, En principio cualquier operación que incluya NA's devuelve un NA, pero en este caso R trata de evaluar la expresión lógica y si alguno de los lógicos de los "O" es cierto devuelve TRUE: > TRUE | NA [1] TRUE > NA | TRUE [1] TRUE > NA | FALSE [1] NA > NA | NA [1] NA Por tanto parece que solo devuelve NA's en el caso de que todas la condiciones no falsas sean NA's. En cuanto a andar cambiando los valores de la base de datos sólo para hacer esto no lo recomendaría. En esta caso concreto recomendaría cambiar los NA's del resultado final por 0's (supongo que se quiere esto), e.g.: guaran$datif[is.na(guaran$datif)] <- 0 Si solo se quiere hacer una operación para los que verifiquen una condición, yo sería partidario de emplear índices, e.g. cond <- complete.cases(guaran) guaran$datmatriz <- 0 guaran$datmatriz[cond] <- with(guaran[cond,], ifelse(sp=="L.lucidum"|pap11 == "muerto"|pap06=="muerto"|pap01=="muerto"|pap96=="muerto", 1, 0)) Aunque no para este caso... Un saludo, Rubén Fdez El 26/02/2014 23:18, Carlos Ortega escribió:> Hola, > > He probado la alternativa de los paréntesis... pero el problema sigue > produciéndose a partir de la fila 45 como al principio...: > >> guaran$datif <- ifelse( > + ((guaran$sp == "L.lucidum") | (guaran$pap11 => "muerto") > + | (guaran$pap06 == "muerto") | (guaran$pap01 == "muerto") > + | (guaran$pap96 == "muerto")), 1, 0 > + ) >> head(guaran,50) > ... > > 42 c.1 T.stans <NA> nuevo 35 muerto <NA> 153 52 1 > 43 c.1 P.porphyria <NA> nuevo 65 63 66 149 52 *0* > 44 c.1 T.stans <NA> nuevo 47 muerto <NA> 149 52 *1* > 45 c.1 C.lilloi <NA> <NA> nuevo 54 53 159 42 *NA* > 46 c.1 P.porphyria <NA> <NA> nuevo 34 38 157 44 *NA* > 47 c.1 R.apetala <NA> <NA> nuevo 32 34 157 49 NA > 48 c.1 A.edulis <NA> <NA> nuevo 32 33 140 54 NA > 49 c.1 A.edulis <NA> <NA> <NA> nuevo 32 154 53 NA > 50 c.1 C.vernalis <NA> <NA> <NA> nuevo 36 156 54 NA > > Y el patrón de que aparezcan dos NAs contiguos tampoco es la razón, ya que > hay casos anteriores que son procesados correctamente..(filas 4, 5 y 6 por > ejemplo)...: > > 4 c.1 T.stans 35 36 muerto <NA> <NA> 158 57 *1* > 5 c.1 T.stans 34 35 muerto <NA> <NA> 158 60 *1* > 6 c.1 T.stans 40 muerto <NA> <NA> <NA> 147 57 *1* > > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > > > > El 26 de febrero de 2014, 22:43, Jorge Miguel Garcia Fernandez < > jm.garcia.fdz@gmail.com> escribió: > >> El problema puede estar en el no uso de suficientes paréntesis. Por >> ejemplo, con: >>> a=1 >>> b=0 >>> c=0 >> la instrucción >> >> ifelse(((a>1) | (b=0) | (c=1) | (d=1)), 11, 22) >> >> da el resultado esperado: >> >> [1] 11 >> >> Pero si se omiten los paréntesis se llega a un error de interpretación: >> >> destino de la asignación se expande a un objeto fuera del lenguaje >> >> Espero que sirva >> >> Jorge >> >> >> >> El 26/2/14, daniel <daniel319@gmail.com> escribió: >>> Priscila, >>> >>> Los NA aparecen porque en la condición: >>> >>> guaran$sp=="L.lucidum"|guaran$pap11 =>>> >> "muerto"|guaran$pap06=="muerto"|guaran$pap01=="muerto"|guaran$pap96=="muerto" >>> hay alguna columna que es NA. Por ejemplo en la línea 46: >>> >>> c.1 P.porphyria <NA> <NA> nuevo 34 38 157 44 NA >>> >>> la cuarta columan es pap96. Si los NA están en columnas que no son >>> evaluadas por la condición, no se debieran generan NA. No revisé caso por >>> caso para ver si esto se cumple pero hace sentido para mi. >>> >>> Para resolver el problema lo mejor es que sigas lo propuesto por >> Francisco >>> Viciana. >>> >>> Si lo que quieres es ignorar las columnas con NA y seguir buscando en las >>> otras entonces reemplaza los NA por otra variable en las columnas que >> usas >>> y terminado vuelve a poner en su lugar los NA. Ten mucho cuidado si haces >>> esto, y solo si lo permite el problema que tratas de resolver. >>> >>> Espero te sirva para entender por que aparecen los NA en tu ejemplo. >>> >>> Daniel Merino >>> >>> >>> >>> El 26 de febrero de 2014, 13:41, "Marcuzzi, Javier Rubén" < >>> javier.ruben.marcuzzi@gmail.com> escribió: >>> >>>> Hola >>>> >>>> No es lo mismo pero en mi caso personal la forma que utilizo se basa en >>>> el ejemplo de http://cran.r-project.org/doc/contrib/grafi3.pdf página >>>> 49, no usa el if pero también hay una condición para todos los >>>> verdaderos. >>>> >>>> No intenté en este caso en particular, habría que ver si también da >>>> problemas, pero como Carlos Ortega que sabe mucho dio una solución y >>>> como vos estas empezando no quiero confundirte, >>>> >>>> Javier Marcuzzi >>>> >>>> >>>> El 26/02/14 12:49, Carlos Ortega escribió: >>>>> Hola, >>>>> >>>>> No he encontrado la razón de que la explicación sea estrictamente la >>>>> presencia de NAs. >>>>> Por este contraejemplo: >>>>> >>>>>> val <- guaran[44,] >>>>>> val >>>>> parc. sp pap91 pap96 pap01 pap06 pap11 x y >>>>> 44 c.1 T.stans *<NA>* nuevo 47 muerto *<NA>* 149 52 >>>>>> ifelse( >>>>> + val$sp=="L.lucidum" | val$pap11 == "muerto" >>>>> + | val$pap06=="muerto" | val$pap01=="muerto" >>>>> + | val$pap96=="muerto", 1, 0 >>>>> + ) >>>>> [1] *1* *#Devuelve bien el valor el ifelse a pesar de que hay NAs.* >>>>>> val <- guaran[45,] >>>>>> val >>>>> parc. sp pap91 pap96 pap01 pap06 pap11 x y >>>>> 45 c.1 C.lilloi *<NA>* *<NA> *nuevo 54 53 159 42 >>>>>> ifelse( >>>>> + val$sp=="L.lucidum" | val$pap11 == "muerto" >>>>> + | val$pap06=="muerto" | val$pap01=="muerto" >>>>> + | val$pap96=="muerto", 1, 0 >>>>> + ) >>>>> [1] *NA* *# Pero en este otro caso que debería ser "1" devuelve un >>>>> "NA".* >>>>> >>>>> Al aplicar el "ifelse" es a partir de la fila 45 donde comienzan a >>>> aparecer >>>>> los "NA", aunque en múltiples filas anteriores hay valores NA. >>>>> >>>>> Pero sí que es cierto que al quitar todos los NAs el problema se >>>> resuelve. >>>>> El siguiente código quita los NA, aplica el ifelse creando la nueva >>>> columna >>>>> y vuelve a darte a ponerte los NAs que tenías al principio.... >>>>> >>>>> >> #------------------------------------------------------------------------- >>>>> # Sustituyo los NA por ZZ >>>>> guaran <- dat.in[,c(1:9)] >>>>> for (i in 1:dim(guaran)[2]) { >>>>> guaran[is.na(guaran[,i]),i] <- c("ZZ") >>>>> } >>>>> #head(guaran,25) >>>>> >>>>> #Compruebo que funciona el ifelse >>>>> guaran$datmatriz <- ifelse( >>>>> guaran$sp == "L.lucidum" | guaran$pap11 =>> "muerto" >>>>> | guaran$pap06 == "muerto" | guaran$pap01 =>> "muerto" >>>>> | guaran$pap96 == "muerto", 1, 0 >>>>> ) >>>>> #head(guaran,50) >>>>> >>>>> #Devuelvo el data.frame al estado original >>>>> # Pero con la columna del ifelse ya añadida y evaluada >>>>> for (i in 1:dim(guaran)[2]) { >>>>> guaran[guaran[,i]=="ZZ",i] <- NA >>>>> } >>>>> >>>>> #head(guaran,50) >>>>> >> #------------------------------------------------------------------------- >>>>> >>>>> Saludos, >>>>> Carlos Ortega >>>>> www.qualityexcellence.es >>>>> >>>>> >>>>> >>>>> >>>>> El 26 de febrero de 2014, 15:23, Priscila Ana Powell < >>>>> priscilaapowell@gmail.com> escribió: >>>>> >>>>>> Hola gente!! Estoy empezando a trabajar con R, y no puedo resolver lo >>>>>> siguiente: >>>>>> >>>>>> Quiero crear una nueva variable (datmatriz) que toma el valor de 1 >> si: >>>>>> -la variable sp es igual a L.lucidum >>>>>> -alguna de las variables pap11, pap06, pap01, pap96 es igual a >> muerto. >>>>>> El script que utilicé es : >>>>>> >>>>>> guaran$datmatriz<-ifelse (guaran$sp=="L.lucidum"|guaran$pap11 =>>>>>> >> "muerto"|guaran$pap06=="muerto"|guaran$pap01=="muerto"|guaran$pap96=="muerto", >>>>>> 1, 0) >>>>>> >>>>>> Sin embargo, al observar datmatriz, tengo 0, 1 y NA, que no sé que >> los >>>>>> genera. >>>>>> >>>>>> Alguna idea para salvar el inconveniente? >>>>>> >>>>>> adjunto la matriz >>>>>> >>>>>> desde ya, muchas gracias!! >>>>>> >>>>>> >>>>>> saludos ! >>>>>> >>>>>> Priscila >>>>>> -- >>>>>> Priscila Ana Powell >>>>>> Instituto de Ecología Regional >>>>>> Facultad de Ciencias Naturales e Instituto Miguel Lillo >>>>>> Universidad Nacional de Tucumán >>>>>> Argentina >>>>>> >>>>>> _______________________________________________ >>>>>> 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 >>>> >>>> >>> >>> -- >>> Daniel >>> >>> [[alternative HTML version deleted]] >>> >>> >> _______________________________________________ >> 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]]