3

私はpanderpandocスタイルのテーブルを生成するために使用しますが、多くの場合、次の例のように変数の繰り返し値を抑制する必要があります:

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  
  --------------------

問題はこのローカルで繰り返される値の削除に似ており、data.frames に dplyr を使用しているため、mutate を使用したソリューションが価値があるはずです。これを試しましたが、機能しませんでした。

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

1 に答える 1

2

これは、修正される未解決のバグのようです。それまでの間、この回避策はうまくいくようです:

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
于 2015-06-18T22:40:22.070 に答える