删除矩阵R中的重复相邻值

时间:2016-05-26 13:24:30

标签: r

我有一个文本文件,里面有30行和大约1000列。当我使用read.table并使用View()时的数据布局如下所示。我尝试了很多方法用于删除data.frame的重复相邻值,以便在我的情况下删除但不起作用。

1 1 1 2 2 2 3 3 3 3 2 2 
2 2 2 2 2 2 2 2 2 2 2 2

我预计输出会是这样的:

1 2 3 2
2

在我对副本进行过滤后,我会将其写回新的矩阵。

1 个答案:

答案 0 :(得分:5)

您可以使用rle。它" [c] ompute [s]向量"中等值运行的长度和值。

DF <- read.table(text = "1 1 1 2 2 2 3 3 3 3 2 2 
2 2 2 2 2 2 2 2 2 2 2 2")

x <- apply(DF, 1, function(x) unname(rle(x)$values))

do.call(rbind, lapply(x, `length<-`, max(lengths(x))))
#     [,1] [,2] [,3] [,4]
#[1,]    1    2    3    2
#[2,]    2   NA   NA   NA