gpt4 book ai didi

r - 删除矩阵中的行

转载 作者:行者123 更新时间:2023-12-04 11:17:16 29 4
gpt4 key购买 nike

我有一个矩阵,它看起来像这样:

have=rbind(matrix(c(1,1,1,1,2,2,2,2,3,3,3,3),ncol=3),c(5,5,5),c(5,5,5),c(5,5,5),c(1,1,1),c(1,1,1))

[,1] [,2] [,3]
[1,] 1 2 3
[2,] 1 2 3
[3,] 1 2 3
[4,] 1 2 3
[5,] 5 5 5
[6,] 5 5 5
[7,] 5 5 5
[8,] 1 1 1
[9,] 1 1 1

我想删除行,如果它们只出现一两次。理想情况下,我希望它是特定于用户的,因此如果该行仅出现 N 次或更少,则应将其删除。所以,如果 N=2 那么它应该删除最后两行,因为它们只出现了两次:

want=rbind(matrix(c(1,1,1,1,2,2,2,2,3,3,3,3),ncol=3),c(5,5,5),c(5,5,5),c(5,5,5))

[,1] [,2] [,3]
[1,] 1 2 3
[2,] 1 2 3
[3,] 1 2 3
[4,] 1 2 3
[5,] 5 5 5
[6,] 5 5 5
[7,] 5 5 5

另一方面,如果 N=3,那么它应该返回:

want_2=rbind(matrix(c(1,1,1,1,2,2,2,2,3,3,3,3),ncol=3))

[,1] [,2] [,3]
[1,] 1 2 3
[2,] 1 2 3
[3,] 1 2 3
[4,] 1 2 3

最佳答案

rowRemove <- function(x, n) {
oc <- apply(x, 1, paste, collapse = "\r")
x[table(oc)[oc] > n, ]
}
rowRemove(have, 3)
# [,1] [,2] [,3]
# [1,] 1 2 3
# [2,] 1 2 3
# [3,] 1 2 3
# [4,] 1 2 3

关于r - 删除矩阵中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35411506/

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