【问题标题】:How to compare rows with each other in a dataframe in R如何在R中的数据框中相互比较行
【发布时间】:2020-02-14 16:10:22
【问题描述】:

我有一个从所有排列生成的数据框 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)))

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

【问题讨论】:

  • nrow(final_matrix) == nrow(unique(final_matrix)) 够吗?
  • 谢谢!完美!

标签: r dataframe for-loop nested-loops


【解决方案1】:

有两种快速方法可以检查matrixdataframe 的此类条件。 uniqueduplicated 函数在逐行的基础上为这些结构工作。因此,您可以使用

检查此条件
nrow(final_matrix) == nrow(unique(final_matrix))

或者更简单,

sum(duplicated(final_matrix)) == 0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-07
    • 2020-10-17
    • 2019-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多