2015-06-18 30 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