gpt4 book ai didi

r - 查找矩阵中重复次数最多的行

转载 作者:行者123 更新时间:2023-12-04 03:44:04 25 4
gpt4 key购买 nike

我在矩阵中有大约 10000 个样本的重复。我的矩阵有 1000 行和 6 列。列中的数字范围为 0:58,具体取决于样本。

actual.prob <- c(.14, .14, .16, .13, .19, .24)
million.rep <- replicate(10000, sample(1:6, 58, replace= T, actual.prob))
new.matrix <- matrix(nrow= 10000, ncol=6)
for(i in 1:10000){
new.matrix[i,] <- as.vector(table(factor(million.rep[,i], levels=1:6)))
}
new.matrix[1:10,]

[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 3 7 11 11 11 15
[2,] 7 6 12 5 19 9
[3,] 12 7 6 8 11 14
[4,] 6 7 16 6 11 12
[5,] 5 9 12 5 14 13
[6,] 9 4 14 7 10 14
[7,] 6 9 9 6 15 13
[8,] 9 4 8 8 11 18
[9,] 6 11 7 5 12 17
[10,] 7 6 9 9 15 12

我想找出是否有重复的样本。我尝试了replicated(),它告诉我哪些行是复制的,但我想查看该行而不必手动返回。有什么建议?

最佳答案

这是一个 data.table执行:

library(data.table)
dt <- data.table(new.matrix)
head(dt[, list(repeats=.N, id=.I[[1]]), by=names(dt)][order(repeats, decreasing=T)], 20)
# V1 V2 V3 V4 V5 V6 repeats id
# 1: 5 7 11 8 13 14 4 543
# 2: 5 11 13 5 10 14 4 579
# 3: 6 8 6 10 12 16 4 1433
# 4: 6 9 9 9 9 16 4 1688
# 5: 8 8 9 7 10 16 4 2382
# 6: 6 10 8 7 11 16 4 2965
# 7: 7 9 11 8 11 12 4 3114
# 8: 8 8 10 7 10 15 4 3546
# 9: 7 8 12 9 9 13 4 5759
# 10: 7 7 13 9 10 12 4 9021
# 11: 8 10 8 8 12 12 3 81
# 12: 9 10 7 7 11 14 3 110
# 13: 7 11 8 6 12 14 3 130
# 14: 11 9 7 7 9 15 3 143
# 15: 8 10 10 7 11 12 3 330
# 16: 8 9 10 8 13 10 3 480
# 17: 9 10 7 10 11 11 3 542
# 18: 8 6 11 9 11 13 3 555
# 19: 7 10 7 6 10 18 3 577
# 20: 7 8 10 5 12 16 3 601

哪里 repeats是一行出现多少次, id矩阵中与该模式匹配的第一行。

关于r - 查找矩阵中重复次数最多的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21538716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com