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

一种解决方案是使用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 回答