如何在数据框的每一行中仅保留唯一值 输入如下:
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
我尝试了 plyr
,unique
,但它保留了完整数据集中的唯一值
答案 0 :(得分:2)
您可以使用sapply
或lapply
来完成此操作。
#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