es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

División por combinación de 2 factores

Tengo un tibble con 3 columnas, llamadas “A”, “B” y “C”:

A | B | C
1 a 2017
1 b 2017
1 a 2018
1 b 2017
2 a 2017
2 a 2018
etc..

Me gustaría tener una lista de todos los elementos en la columna B para cada combinación de A y C. Por ejemplo, para [1,2017] obtengo [a, b].

Puedo hacerlo cuando solo tengo 2 columnas usando split:

split(tibble$B, tibble$A)

que devuelve una lista de listas. No estoy seguro de cómo hacerlo con 3 columnas, como se describe anteriormente.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para obtener una lista de todos los elementos en la columna B para cada combinación de A y C, puedes usar la función split() con group_by() del paquete dplyr. Así es cómo puedes hacerlo:

    library(dplyr)
    
    tibble %>%
      group_by(A, C) %>%
      summarize(B_list = list(unique(B)))
    

    Esto agrupará el tibble por las columnas A y C, y luego creará una nueva columna “B_list” que contiene una lista de valores únicos de B para cada grupo de A y C. Puedes modificar unique(B) a B si quieres mantener todos los valores.

Comments are closed.