如何在数据框的每一行中仅保留唯一值

时间:2018-05-07 06:38:10

标签: r

如何在数据框的每一行中仅保留唯一值 输入如下:

1 1 2 3 4 1 6 7 8
2 2 5 5 7 8 9 0 0
6 6 6 6 5 1 2 3 4

输出如下

1 2 3 4 6 7 8
2 5 7 8 9
6 5 1 2 3 4
我尝试了

plyrunique,但它保留了完整数据集中的唯一值

3 个答案:

答案 0 :(得分:2)

您可以使用sapplylapply来完成此操作。

#supposing your data.frame is called 'df'

sapply(df, unique)
#$x1
#[1] 1 2 3 4 6 7 8
#
#$x2
#[1] 2 5 7 8 9 0
#
#$x3
#[1] 6 5 1 2 3 4

lapply(df, unique)
#$x1
#[1] 1 2 3 4 6 7 8
#
#$x2
#[1] 2 5 7 8 9 0
#
#$x3
#[1] 6 5 1 2 3 4

答案 1 :(得分:1)

# Imagine D is your data.frame object
  apply(D,1, function(x) rle(x)$values)

答案 2 :(得分:1)

A=apply(dat,1,unique)
data.frame(t(sapply(A,`length<-`,max(lengths(A)))))
  X1 X2 X3 X4 X5 X6 X7
1  1  2  3  4  6  7  8
2  2  5  7  8  9  0 NA
3  6  5  1  2  3  4 NA