[R-es] Función que transforme variables

José Trujillo Carmona
2010-08-31T07:55:51Z

Yo utilizaría la función específica que propone RCommander:

Datos -> Modificar variables del conjunto de datos activo -> Recodificar
variables

El código que se genera es:

Primero creo una variable que se parece a la del ejemplo, también
mediante el menú de Rcommander:

 > binomiales <- as.data.frame(matrix(1+rbinom(20*1, size=4, prob=0.5),
ncol=1))
 > rownames(binomiales) <- paste("event", 1:20,
sep="")
 > colnames(binomiales) <- "sample"
 > binomiales$sample
 [1] 4 3 3 4 3 5 2 3 1 1 1 2 5 1 4 5 1 2 2 3

A continuación recodifico según deseos Luis:

 > binomiales$variable <- recode(binomiales$sample,
''1:3="Insatisfechos";c( 4,5) = "Satisfechos";
'', as.factor.result=TRUE)
 > binomiales$variable
 [1] Satisfechos   Insatisfechos Insatisfechos Satisfechos
Insatisfechos Satisfechos
 [7] Insatisfechos Insatisfechos Insatisfechos Insatisfechos
Insatisfechos Insatisfechos
[13] Satisfechos   Insatisfechos Satisfechos   Satisfechos
Insatisfechos Insatisfechos
[19] Insatisfechos Insatisfechos
Levels: Insatisfechos Satisfechos

La orden "recode" es muy facilita, flexible (incluye lo y hi como
valores especiales y la opción else para lo no especificado) y hace
exactamente lo que programa Luis.

Un saludo.



Luciano Selzer escribió:
> Hola Luis:
> Una forma más sencilla es usar la función cut que convierte
> variables numéricas en categóricas:
>
> cut(f, breaks = c(4,5), labels = c("Insatisfechos",
"Satisfechos"))
>
> Un Saludo
> Luciano
>
>
> El 30 de agosto de 2010 18:14, Luis Alberto Lopez Gonzalez <
> luialopezg@bt.unal.edu.co> escribió:
>
>
>> Buenas tardes a todos.
>> Quisiera saber que debo tener en cuenta cuando realice una función que
>> transforme variables y como resultado de su aplicación obtenga la
variable
>> transformada. Deseo recategorizar una variable ordinal (1 a 5) en dos
>> categorias y he pensado algo así:
>>
>> baja_satis <- function(f)
>> {
>> n <- length(f)
>> f_cat <- character(length(n))
>> for(i in 1:n)
>>  if(f[i] < 4) n[i]== "Insatisfechos" else
n[i]=="Satisfechos"
>> f_cat
>> }
>>
>> Evidentemente me falta conocer algunos aspectos de la construcción de
>> funciones.
>>
>> Desde ya les doy las gracias por su ayuda.
>>
>> --
>> Luis Alberto López González
>>
>>        [[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
>