Muchas gracia a ambos.

Ahora funciona, pero hay algo que no entiendo:
apply(entonces_quiero[,1:2], c(1,2),ver)
funciona, pero no para una sola columna.

Una de mis opciónes que dió resultado fué:
yy <- entonces_quiero[,2]
yyy<-tapply(yy, ver)

Nuevamente gracias.

Javier

El 11 de octubre de 2011 21:35, María Gloria Monterubbianesi <
gmonterubbianesi@balcarce.inta.gov.ar> escribió:

> Hola Javier,
>
> No usé apply, pero tal vez te sirva. Tomé tus mismos
> datos y nombres para el desarrollo:
>
> x<-c(1,2,3,4,5,6)
> y<-c(1,2,'p','s','s','p')
> entonces_quiero<-data.frame(x,y) # es el data al que quieres
> añadir las columnas
> # “quiero_p” y “quiero_s” con las características
> indicadas,
>
> entonces_quiero$quiero_p<-y
> entonces_quiero$quiero_s<-y
>
> entonces_quiero$quiero_p
> [entonces_quiero$quiero_p!='p']<-NA
> entonces_quiero$quiero_s
> [entonces_quiero$quiero_s!='s']<-NA
>
> entonces_quiero$quiero_p<-factor(entonces_quiero$quiero_p)
> entonces_quiero$quiero_s<-factor(entonces_quiero$quiero_s)
>
> # “entonces_quiero” quedó como deseabas
>
> Saludos
> Gloria
>
>
> ----- Original Message Follows -----
> From: Javier Marcuzzi <javier.ruben.marcuzzi@gmail.com>
> To: r-help-es@r-project.org
> Subject: [R-es] apply
> Date: Tue, 11 Oct 2011 17:57:24 -0300
>
> > Nuevamente necesito ayuda, parece que en lugar de aprender
> > ¿desaprendo? Es un problema sencillo, cosas que uno ya
> > hacía y ahora por arte de magia no salen.
> >
> > Se trata sobre apply (esta vez no intente con
> > programación). La intención es crear una columna en el
> > data.frame donde coloco palabras o NA, de acuerdo a una
> > columna donde está todo codificado. Posiblemente se
> > entiende mejor copiando y pegando los ejemplos en R que
> > escribo a continuación, en entonces_quiero está el
> > resultado final (deseado).
> >
> > # creo algunos datos
> > x<-c(1,2,3,4,5,6)
> > y<-c(1,2,'p','s','s','p')
> > #  Lo deseo acomodar de la siguiente forma (estilo
> > survival) quiero_p <-c(NA,NA,'p',NA,NA,'p')
> > quiero_s <-c(NA,NA,NA,'s','s',NA)
> > entonces_quiero<-data.frame(x,y,quiero_p,quiero_s)
> > entonces_quiero
> > # funcion para el caso 's'
> > ver <- function(x){
> >         if (x=='s') {y <- 's'
> >           return(y)}
> >         else {y<-NA
> >           return(y)}
> >         }
> > # pruebo la función para valores ingresados de a uno y a
> > mano ver("p")
> > ver("s")
> > ver(1)
> > ver(2)
> > # los valores dados por la función ver son los
> correctos.
> >
> >
> > #youtube   ejemplo
> > http://www.youtube.com/watch?v=WR8ftX-GJoE ceros <-
> > function(x){if(x<3){x=0}else{x=1}}
> > apply(entonces_quiero[,1:2], c(1,2), ceros) # pero no
> > apply(entonces_quiero, c(1,2), ceros)
> >
> > # probando mi función "ver" como la funcion "ceros"
> (solo
> > para la segunda columna. Me da un error
> > apply(entonces_quiero[,2], c(1,2),ver)
> > # también probe algo como  <-
> > function(x){if(x=='s'){x=='s'}else{x==NA}} #
> > # es algo medio tonto, documentado en todos lados, pero
> > tengo un problema y no me doy cuenta
> > # hoy me canse de cometer errores con esto
> >
> >     [[alternative HTML version deleted]]
> >
> >
> >
> > _______________________________________________
> > R-help-es mailing list
> > R-help-es@r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
> >
> ___________________________________________________________________________
>
> Aviso:
>
> El contenido del presente e-mail y sus posibles adjuntos pertenecen al INTA
> y pueden contener información confidencial. Si usted no es el destinatario
> original de este mensaje y por este medio pudo acceder a dicha información,
> por favor solicitamos contactar al remitente y eliminar el mensaje de
> inmediato. Se encuentra prohibida la divulgación, copia, distribución o
> cualquier otro uso de la información contenida en el presente e-mail por
> parte de personas distintas al destinatario.
>
>
> This e-mail contents and its possible attachments belong to INTA and may
> contain confidential information. If this message was not originally
> addressed to you, but you have accessed to such information by this means,
> please contact the sender and eliminate this message immediately.
> Circulation, copy, distribution, or any other use of the information
> contained in this e-mail is not allowed on part of those different from the
> addressee.
>
>
> Antes de imprimir este mensaje, asegúrese de que sea necesario. Proteger el
> medio ambiente está también en su mano.
>

	[[alternative HTML version deleted]]

