Loading...
 
ADUP - R

ADUP - R


Re: Re: utilitzar l' spread per posar dues capçaleres aniuades

posts: 51

Tema molt interessant! Gràcies Montse per la pregunta, per que he après força coses buscant la resposta, que venien com a anell al dit per a la següent sessió del curs just després de Setmana Santa:

1. Tal i com suggeria el missatge d'error, el problema era que no quedava cap columna per a mostrar de forma diferent els resultats. I una solució fàcil (tot i que no soluciona el que es volia fer) era el que suggeria el missatge d'error: afegir una columna nova amb els números de fila (amb tibble::rowid_to_column() ) per tal que es pogués evitar el problema. Però tot i evitar el problema, no genera les dues capçaleres aniudades. :-/

2. La funció spread() del paquet tidyr (del Tidyverse) no sembla permetre agrupar els resultats de la taula per dos nivells de columnes (com sí que permeten molts programes de taules dinàmiques, o com és habitual en moltes taules de presentació de resultats).

3. Hi ha un altre paquet d'R que no coneixia (sembla ser força nou) que justament permet fer aquestes taules resum de forma fàcil: pivottabler (a part del rpivotTable que ja tenia previst mostrar en la propera sessió).

Amb pivottabler pots fer la taula que ens interessa amb aquest altre codi que utilitza una de les seves funcions per fer-ho fàcil: qhpvt() (de "quick htmlwidget pivot table"):

library(pacman); p_load(pivottabler)

# alternativament:
# install.packages("pivottabler"); library(pivottabler)

# arguments:  qhpvt(dataFrame, rows, columns, calculations, ...)

qhpvt(dades %>% filter(SituacioAdministrativa == "Denegat PI a altre país UE"), # dataFrame
      c("Continent", "Nacionalitat"), # rows
      c("dds.any", "dds.mes"), # columns
      "n()" # calculations
      )


Senzill, eficaç i elegant! :-)