Использование нескольких полей на одном уровне в сводной таблице - PullRequest
1 голос
/ 24 февраля 2020

Я ищу в pivottabler возможность построить таблицу для 2 параллельных полей, например:

             SEX      |             POPULATION GROUPS
______________________|_______________________________________  
    1       |   2     |   1     |   2     |   3     |   4
 ___________|_________|_________|_________|_________|___________
  AgeGroups |AgeGroups|AgeGroups|AgeGroups|AgeGroups|AgeGroups            
      |  |  |   |  |  |   |  |  |   |  |  |   |  |  |   |  |     
    1 | 2| 3| 1 | 2| 3| 1 | 2| 3| 1 |2 | 3| 1 | 2| 3| 1 | 2| 3
______|__|__|___|__|__|___|__|__|___|__|__|___|__|__|___|__|___
      |  |  |   |  |  |   |  |  |   |  |  |   |  |  |   |  |           

Как добавить в AddColumnDataRows 2 или более полей параллельно, а не иерархически

1 Ответ

0 голосов
/ 12 апреля 2020

Это можно сделать, указав atLevel=1 при добавлении столбцов группы населения в сводную таблицу.

Я составил несколько примеров данных для использования в примере ниже.

n <- 100
sex <- sample(x=c("M","F"), size=n, replace=TRUE)
pg <- sample(x=c("pg1","pg2","pg3","pg4"), size=n, replace=TRUE)
ag <- sample(x=c("ag1","ag2","ag3"), size=n, replace=TRUE)
grp <- sample(x=c("g1","g2","g3","g4"), size=n, replace=TRUE)
df <- data.frame(sex, pg, ag, grp)

library(pivottabler)
pt <- PivotTable$new()
pt$addData(df) 
pt$addColumnDataGroups("sex", addTotal=FALSE)
pt$addColumnDataGroups("pg", atLevel=1, addTotal=FALSE)
pt$addColumnDataGroups("ag", addTotal=FALSE)
pt$addRowDataGroups("grp")
pt$defineCalculation(calculationName="Count", summariseExpression="n()")
pt$renderPivot()

Пример вывода:

example output

Надеюсь, что поможет

Крис

...