0

次のデータがあり、それぞれを数えて別の列に入れたいと思います。

入力:

    col1    col2    col3    col4
A    a       a        a       a
B    a       c        c       c
C    a       b        b       c
D    a       -        b       c
E    b       -        b       c

したがって、出力は次のようになります。

    col1    col2    col3    col4    count
A    a       a        a       a       a
B    a       c        c       c       a,c
C    a       b        b       c       a,b,c
D    a       -        b       c       a,b,c,-
E    b       -        b       c       b,c,-
4

1 に答える 1

3

1つの解決策は、使用することですapply

dt$count <- apply(dt,1,function(x)I(unique(x)))
  col1 col2 col3 col4      count
A    a    a    a    a          a
B    a    c    c    c       a, c
C    a    b    b    c    a, b, c
D    a    -    b    c a, -, b, c
E    b    -    b    c    b, -, c

結果を並べ替えると出力が向上する可能性がありますが、正確には望ましいものではありません。

dt$count <- apply(dt,1,function(x)I(sort(unique(x))))

col1 col2 col3 col4      count
A    a    a    a    a          a
B    a    c    c    c       a, c
C    a    b    b    c    a, b, c
D    a    -    b    c -, a, b, c
E    b    -    b    c    -, b, c
于 2013-07-17T03:34:31.680 に答える