列出表的行字符

时间:2013-07-17 03:19:58

标签: r

我有以下数据,并想计算每一个数据并将其放在另一列中。

输入:

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

1 个答案:

答案 0 :(得分: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