2015-06-18 1 views
3

я использую pander для создания таблиц pandoc стилей, часто мне нужно подавить повторяющиеся значения переменных как в этом примере:Сформировать таблицу pandoc без повторных значений

ta <- data.frame(class=c(rep("C1" ,3), rep("C2", 6)), 
       name=rep(c("L", "V", "C"), each=3), num=rpois(9, 10)) 

pandoc.table(ta) 

Выходом является

-------------------- 
    class name num 
    ------- ------ ----- 
    C1  L  15 

    C1  L  11 

    C1  L  8 

    C2  V  7 

    C2  V  7 

    C2  V  5 

    C2  C  12 

    C2  C  9 

    C2  C  12 
    -------------------- 

и Я хотел бы

-------------------- 
    class name num 
    ------- ------ ----- 
    C1  L  15 

        11 

        8 

    C2  V  7 

        7 

        5 

      C  12 

        9 

        12 
    -------------------- 

Проблема похожа на эту проблему Removing Locally Repeated Values и как я использую dplyr для data.frames решение, использующее мутировать должно быть стоит, я попытался это, но не получилось:

mutate(ta, class=ifelse(lag(class,1) == class & !is.na(lag(class,1)), "", class)) 

ответ

2

This seems like an open bug that will be corrected. В то же время этот способ кажется, чтобы сделать работу:

mutate(ta, class=ifelse(levels(class)[lag(class,1)] == class & !is.na(levels(class)[lag(class,1)]), "", class)) 
    class name num 
1  1 L 8 
2   L 14 
3   L 12 
4  2 V 11 
5   V 7 
6   V 15 
7   C 16 
8   C 8 
9   C 9 

 Смежные вопросы

  • Нет связанных вопросов^_^