Recodificar múltiples variables en R

4
user7777508 2017-05-07 20:42.

Me gustaría recodificar múltiples variables a la vez en R. Las variables están dentro de un marco de datos más grande. Aquí hay algunos datos de ejemplo:

 z <- data.frame (A = c(1,2,300,444,555),
              B = c(555,444,300,2,1),
              C = c(1,2,300,444,555),
              D = c(1,2,300,444,555))

Lo que me gustaría hacer es recodificar todos los valores que equivalen a 300 como 3, 444 como 4 y 555 como 5.

Pensé que posiblemente podría hacer esto en una lista. Esto es lo que probé:

example_list  = list(c("A", "B", "C", "D"))

example_list <- apply(z[,example_list], 1, function(x) ifelse(any(x==555, na.rm=F), 0.5,
                                                              ifelse(any(x==444), 0.25),
                                                              ifelse(any(x==300), 3, example_list)))

Me sale este error:

Error during wrapup: invalid subscript type 'list'

Luego intenté usar "lapply" y obtuve este error:

Error during wrapup: '1' is not a function, character or symbol

Incluso entonces no estoy seguro de que esta sea la mejor manera de hacer esto ... Me gustaría evitar hacer esto línea por línea para múltiples variables. Cualquier sugerencia sería increíble, ya que soy nuevo en R y no entiendo del todo qué estoy haciendo mal.

Encontré una pregunta similar en SO: Pregunta , pero no estoy seguro de cómo aplicar eso a mi problema específico.

6 answers

1
RoyalTS 2017-05-08 04:04.

Esto parece un poco torpe pero funciona:

mutate_cols <- c('A', 'B')

z[, mutate_cols] <- as.data.frame(lapply(z[, mutate_cols], function(x) ifelse(x == 300, 3, 
                                                                              ifelse(x == 444, 4, 
                                                                                     ifelse(x== 555, 5, x)))))
2
Sraffa 2017-05-08 05:25.

Utilizando case_when:

library(dplyr)
z %>% mutate_all(
    function(x) case_when(
        x == 300 ~ 3,
        x == 444 ~ 4,
        x == 555 ~ 5,
        TRUE ~ x
    )
)

  A B C D
1 1 5 1 1
2 2 4 2 2
3 3 3 3 3
4 4 2 4 4
5 5 1 5 5
2
thelatemail 2017-05-08 18:07.

Aquí hay un intento de base R que debería ser prolijamente ampliable y bastante rápido:

# set find and replace vectors
f <- c(300,444,555)
r <- c(3, 4, 5)
# replace!
m   <- lapply(z, function(x) r[match(x,f)] )
z[] <- Map(function(z,m) replace(m,is.na(m),z[is.na(m)]), z, m)

#  A B C D
#1 1 5 1 1
#2 2 4 2 2
#3 3 3 3 3
#4 4 2 4 4
#5 5 1 5 5
1
Yannis Vassiliadis 2017-05-08 05:25.

Esto debería funcionar.

library(plyr) 
new.z<- apply(z, 1, function(x) mapvalues(x, from = c(300, 444, 555), to = c(3, 4, 5)))
0
Gregory Demin 2017-05-08 04:51.
z =  data.frame (A = c(1,2,300,444,555),
                 B = c(555,444,300,2,1),
                 C = c(1,2,300,444,555),
                 D = c(1,2,300,444,555))



library(expss)

to_recode = c("A", "B", "C", "D")
recode(z[, to_recode]) = c(300 ~ 3, 444 ~ 4, 555 ~ 5)
0
Hellen Geremias 2020-06-16 18:53.

Si ya tiene variables de factor y también desea variables de factor como resultado, puede usar el siguiente código:

library(tidyverse)
z <- data.frame (A = factor(c(1,2,300,444,555)),
                 B = factor(c(555,444,300,2,1)),
                 C = factor(c(1,2,300,444,555)),
                 D = factor(c(1,2,300,444,555)))

new.z <- z %>% 
mutate_all(function(x) recode_factor(x, "300" = "3", "444" = "4", "555" = "5"))

Related questions

MORE COOL STUFF

Cate Blanchett se acostó con su esposo después de 3 días juntos y sigue casada con él 25 años después

Cate Blanchett se acostó con su esposo después de 3 días juntos y sigue casada con él 25 años después

Cate Blanchett desafió los consejos típicos sobre citas cuando conoció a su esposo.

Por qué Michael Sheen es un actor sin fines de lucro

Por qué Michael Sheen es un actor sin fines de lucro

Michael Sheen es un actor sin fines de lucro, pero ¿qué significa eso exactamente?

¡La estrella de Hallmark, Colin Egglesfield, habla sobre emocionantes encuentros con fans en RomaDrama Live! [Exclusivo]

¡La estrella de Hallmark, Colin Egglesfield, habla sobre emocionantes encuentros con fans en RomaDrama Live! [Exclusivo]

¡La estrella de Hallmark, Colin Egglesfield, habló sobre los emocionantes encuentros con los fanáticos en RomaDrama Live! además de su programa INSPIRE en la convención.

Por qué no puedes transmitir 'Northern Exposure' en línea

Por qué no puedes transmitir 'Northern Exposure' en línea

Tendrás que desempolvar un reproductor de Blu-ray o DVD para ver por qué Northern Exposure se convirtió en uno de los programas más populares de los 90.

Where in the World Are You? Take our GeoGuesser Quiz

Where in the World Are You? Take our GeoGuesser Quiz

The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!

¿Caduca el repelente de insectos?

¿Caduca el repelente de insectos?

¿Sigue siendo efectivo ese lote de repelente de insectos que te quedó del verano pasado? Si es así, ¿por cuánto tiempo?

Dona tu cabello para ayudar a mantener limpia nuestra agua

Dona tu cabello para ayudar a mantener limpia nuestra agua

Los recortes de cabello de los salones y las donaciones personales se pueden reutilizar como tapetes que absorben los derrames de petróleo y ayudan a proteger el medio ambiente.

Una mirada a las bodas más memorables de la Casa Blanca

Una mirada a las bodas más memorables de la Casa Blanca

Solo unas pocas personas se han casado en la Casa Blanca en los últimos más de 200 años. ¿Quiénes eran y qué se requiere para marcar una boda allí?

Los automóviles autónomos estarán en las carreteras en 2020, pero las ciudades de EE. UU. No estarán listas para ellos

Los automóviles autónomos estarán en las carreteras en 2020, pero las ciudades de EE. UU. No estarán listas para ellos

Aunque al menos siete programas de automóviles autónomos juran que estarán listos para la calle en 2020, la verdad es que las ciudades de EE. UU. Lamentablemente no están preparadas para esta realidad. Solo el seis por ciento de las ciudades más grandes de EE. UU. Incluyen algún lenguaje sobre vehículos autónomos en sus planes de transporte de largo alcance.

Aquí está tu disfraz de Halloween de Jurassic World 'Esto es lo mejor que pude hacer'

Aquí está tu disfraz de Halloween de Jurassic World 'Esto es lo mejor que pude hacer'

En lugar de esperar hasta el último minuto posible para decidirse por un disfraz este año, ¿por qué no pedir este atuendo inflable de T-rex de Jurassic World en Amazon el día antes de Halloween y mejorar un poco su juego de disfraces, pero no por mucho? La bomba operada mantiene el disfraz de $ 70 inflado mientras estás escondido en el interior, y la cola larga asegura que serás la ruina de cualquier fiesta de Halloween porque cada vez que te des la vuelta estarás tirando bebidas y dulces de las mesas.

Amigo de la música country: en la radio, las intérpretes femeninas son básicamente guarniciones

Amigo de la música country: en la radio, las intérpretes femeninas son básicamente guarniciones

Country Aircheck Weekly es una publicación comercial dedicada a las noticias de la radio del país, no exactamente una lectura popular para la mayoría de los hogares. Pero su último número ha llamado la atención de la estrella Martina McBride debido a una entrevista con el consultor musical Keith Hill, quien dijo que si la música country es una ensalada, los hombres son la lechuga y las mujeres solo los tomates.

Reddit prohíbe una gran cantidad de comunidades en medio de una nueva regla dirigida a ventas, intercambios y obsequios

Reddit prohíbe una gran cantidad de comunidades en medio de una nueva regla dirigida a ventas, intercambios y obsequios

El pan y la mantequilla de Reddit pueden ser enlaces y comentarios, pero el sitio tiene una larga historia como facilitador de intercambios de regalos y un mercado aislado. Las nuevas reglas del sitio promulgadas hoy prohiben gran parte de ese comportamiento.

Taco Bell anuncia el regreso de la pizza mexicana a su menú: 'los frijoles se han derramado'

Taco Bell anuncia el regreso de la pizza mexicana a su menú: 'los frijoles se han derramado'

El artículo favorito de los fans estará disponible a partir del 15 de septiembre, según compartió la franquicia de comida rápida en Twitter.

Nicky Hilton Forced to Borrow Paris' 'I Love Paris' Sweatshirt After 'Airline Loses All [My] Luggage'

Nicky Hilton Forced to Borrow Paris' 'I Love Paris' Sweatshirt After 'Airline Loses All [My] Luggage'

Nicky Hilton Rothschild's luggage got lost, but luckily she has an incredible closet to shop: Sister Paris Hilton's!

Kate Middleton pasa un día junto al agua en Londres, además de Jennifer Lopez, Julianne Hough y más

Kate Middleton pasa un día junto al agua en Londres, además de Jennifer Lopez, Julianne Hough y más

Kate Middleton pasa un día junto al agua en Londres, además de Jennifer Lopez, Julianne Hough y más. Desde Hollywood hasta Nueva York y todos los lugares intermedios, ¡vea lo que están haciendo sus estrellas favoritas!

Joven de 17 años apuñalado hasta la muerte mientras que otros 4 quedaron heridos en un ataque con cuchillo en el río Wisconsin

Joven de 17 años apuñalado hasta la muerte mientras que otros 4 quedaron heridos en un ataque con cuchillo en el río Wisconsin

Los investigadores están investigando si el grupo y el sospechoso se conocían antes del ataque.

como escribo

como escribo

Para mí, todo se trata de esa primera línea y hacia dónde te lleva. Algunos escritores están motivados por la trama, la delicada disposición de las piezas de ajedrez, mientras que otros se sienten atraídos por un personaje y la capacidad de emprender un viaje con un nuevo amigo ficticio.

aterrizajes en pista

aterrizajes en pista

El final del verano y el otoño son estaciones nostálgicas. Las farolas arrojan su luz sobre las calles resbaladizas por la lluvia, y las hojas bajo los pies, de color rojo anaranjado apagado en las sombras del crepúsculo, son un recordatorio de los días pasados.

Imagina crear una estrategia de contenido que realmente CONVIERTA. Es posible.

Imagina crear una estrategia de contenido que realmente CONVIERTA. Es posible.

En 2021, lo animo a repensar todo lo que sabe sobre los clientes a los que atiende y las historias que les cuenta. Paso atrás.

Una pérdida gigantesca abrió mi corazón al amor

Una pérdida gigantesca abrió mi corazón al amor

El día del noveno cumpleaños de Felix The Cat, recuerdo una de las mayores pérdidas de mi vida adulta: mi Sophie en 2013. Escribí este ensayo y lo compartí brevemente en esta plataforma en 2013.

Language