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.
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)))))
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
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
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)))
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)
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"))
Cate Blanchett desafió los consejos típicos sobre citas cuando conoció a su esposo.
Michael Sheen es un actor sin fines de lucro, pero ¿qué significa eso exactamente?
¡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.
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.
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!
¿Sigue siendo efectivo ese lote de repelente de insectos que te quedó del verano pasado? Si es así, ¿por cuánto tiempo?
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.
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í?
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.
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.
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.
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.
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 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. Desde Hollywood hasta Nueva York y todos los lugares intermedios, ¡vea lo que están haciendo sus estrellas favoritas!
Los investigadores están investigando si el grupo y el sospechoso se conocían antes del ataque.
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.
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.
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.
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.