首页 > 解决方案 > 如何在R中的数据框中相互比较行

问题描述

我有一个final_matrix从所有排列生成的数据框,无需替换8.

require(tidyverse)
require(gtools)

set.seed(222)

x <- 0:7

totale <- permutations(8,8,0:7, repeats.allowed = F)

final_matrix <- as.data.frame(sample_n(as_tibble(totale), 120, replace = F))

我确信每一行都是不同的,所以我正在尝试编写一个循环来检查每一行,所以1 vs 2, 1 vs 3... and then 2 vs 3 ...比较函数是:

isTRUE(all.equal(prova%>% slice(#rownumber), prova %>% slice(#rownumber)))

我尝试过的所有嵌套循环都不起作用,我该怎么办?

标签: rdataframefor-loopnested-loops

解决方案


有两种快速的方法来检查这种类型的条件 amatrixdataframeunique和函数对这些duplicated结构逐行起作用。因此,您可以使用

nrow(final_matrix) == nrow(unique(final_matrix))

或者更简单地说,

sum(duplicated(final_matrix)) == 0

推荐阅读