DATA <- data.frame(
LONDON= c(2,0,1,3,0,1),
STOKE = c(45, 40, 6, 22, 16, 10),
DERBY = c(5, 9, 8, 9, 2, 3),
NEWCASTLE = c(7, 6, 4, 10, 12, 8),
MANCHESTER = c(2, 12, 1, 7, 8, 3),
WATFORD = c(9, 2, 4, 6, 13, 6),
KENT = c(1, 3, 23, 7, 12, 2),
SURREY = c(2, 8, 4, 5, 1, 4),
ESSEX = c(4, 12, 7, 9, 5, 1),
HULL = c(1,3, 2, 4, 3, 1))
Quería crear una columna "NEW_COL", que diga "SÍ" o "NO" en función de cuatro columnas de valores diferentes. Quiero que la nueva columna tenga un "SÍ" (de lo contrario, tenga un "NO") cuando DERBY o NEWCASTLE o SURREY sea> 7 o cuando KENT o HULL = 2 También quiero que la columna "NEW_COL" sea la segunda columna de mi conjunto de datos.
Pensé que algo como esto (abajo) lo habría logrado, pero no fue así. Cualquier ayuda sobre lo que estoy haciendo mal aquí / cómo navegar.
DATA2 <- DATA %>% mutate(NEW_COL = ifelse(rowSums(select(., DERBY:NEWCASTLE) > 7 | select(., SURREY >7) | select(., KENT == 2) | select(., HULL == 2), na.rm = TRUE), 'Yes', 'No'), .before = 2)
Podemos usar if_any
y .before
para cambiar la posición.
library(dplyr)
DATA <- DATA %>%
mutate(NEW_COL = c("NO", "YES")[1 +
(if_any(c(DERBY, NEWCASTLE, SURREY), `>`, 7)|
if_any(c(KENT, HULL), `==`, 2))], .before = 2)
-producción
DATA
LONDON NEW_COL STOKE DERBY NEWCASTLE MANCHESTER WATFORD KENT SURREY ESSEX HULL
1 2 NO 45 5 7 2 9 1 2 4 1
2 0 YES 40 9 6 12 2 3 8 12 3
3 1 YES 6 8 4 1 4 23 4 7 2
4 3 YES 22 9 10 7 6 7 5 9 4
5 0 YES 16 2 12 8 13 12 1 5 3
6 1 YES 10 3 8 3 6 2 4 1 1
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras