我的数据如下: 我想将每行与下面的行进行比较,然后在每两行中得到相等数值。
V1 V2 V3 V4 V5
1 3 2 2 3 3
2 2 2 0 2 3
3 2 3 2 2 0
我在下面编写了代码,但是我把它放在NA面前。
library(data.table)
data=as.data.frame(read.table("data.csv",header=TRUE))
findMatch <- function(i,n){
tmp <- colSums(t(data[-(1:i),]) == unlist(data[i,]))
tmp <- tmp[tmp > n]
if(length(tmp) > 0)return(data.table(sample=rownames(data[i],duplicate=names(tmp),match=tmp))
return(NULL)
}
tab <- rbindlist(lapply(1:(nrow(data)-1),findMatch,n=0))
tab
out put:
sample duplicate match
1: 1 NA NA
2: 1 NA NA
3: 2 NA NA
我希望如此:
sample duplicate match
1: 1 2 2
2: 1 3 1
3: 2 3 2