r - 如何在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)))
我尝试过的所有嵌套循环都不起作用,我该怎么办?
解决方案
有两种快速的方法来检查这种类型的条件 amatrix
或dataframe
。unique
和函数对这些duplicated
结构逐行起作用。因此,您可以使用
nrow(final_matrix) == nrow(unique(final_matrix))
或者更简单地说,
sum(duplicated(final_matrix)) == 0
推荐阅读
- mysql - 执行 SQL 脚本时出错;该进程无法访问该文件,因为它正被另一个进程使用:'C:\\Users\\......\....cnf'
- python - 获取所有原始数据;{ } 中与值相关的键、值
- excel - 将 Excel 数据透视表数据源显示为单元格值
- google-apps-script - 我可以在 Google Drive OCR 中为太小的字母设置阈值吗?
- python - 未捕获来自 Tkinter Gui 中 loop() 的 MQTT 事件
- javascript - 谷歌社交登录按钮不显示
- google-sheets - 将大写单元格与小写单元格分开排序
- java - 通过 java 监控 JVM CPU/RAM 使用情况
- python - 如何在 LDAP 中获取用户 euid 的名字?
- python - 如何决定在正则表达式中分割哪个空格?