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