¿Qué función R puedo utilizar para verificar si los valores de una columna son idénticos según un atributo?
Si su solución puede contener una solución basada en el paquete tidyverse, eso sería genial.
Básicamente, estoy tratando de agrupar por una columna titulada “Attribute” y comprobar si todos los valores en la columna “Values” son idénticos.
Este es mi resultado esperado:
Imagen: aquí
Como puede ver, para Mustang, la columna de valores es todo 1. Así que establecemos “matches” en “Sí”.
Para Corvette y Charger, como uno de los valores es diferente, establecemos “matches” en “No”.
Intenté:
data <- group_by(Attribute) %>%
mutate(Matches = ifelse(first(Value) != any(Value), "Yes", "No"))
No funcionó. ¡Cualquier ayuda es muy apreciada!
davy.ai
Para lograr el resultado esperado, puedes utilizar las funciones
group_by()
ysummarise()
del paquetedplyr
en el tidyverse.Aquí tienes un ejemplo de código:
Explicación:
group_by(Attribute)
agrupa el dataframe por la columna Attribute.summarise(Matches = ifelse(n_distinct(Value) == 1, "Sí", "No"))
resume el dataframe creando una nueva columna llamada Matches. La funciónn_distinct()
cuenta el número de valores distintos en la columna Value para cada grupo. Si solo hay un valor distinto, la columna Matches se establece como “Sí”, de lo contrario se establece como “No”.Esto debería darte el resultado esperado.