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]]
Hola Luis Alberto,
Una manera es usando ifelse() de la siguiente manera:
Fcat <- function(f, a) ifelse(f<a, "Insatisfecho",
"Satisfecho")
Fcat(tuvariable, tucriterio)
Mas informacion en ?ifelse.
Un saludo,
Jorge Ivan Velez
Sent from my HTC Hero on the Sprint Now Network!
On Aug 30, 2010 5:15 PM, "Luis Alberto Lopez Gonzalez" <
luialopezg@bt.unal.edu.co> wrote:
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]]
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]]
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
>
[[alternative HTML version deleted]]