gpt4 book ai didi

r - 计算矩阵中非零列的数量

转载 作者:行者123 更新时间:2023-12-01 10:19:15 24 4
gpt4 key购买 nike

我有一个矩阵matmat 的某些列全部为零,而某些列不为零。如何计算非零列?

mat<-matrix(rep(0,2*5),ncol=2)
mat[,1]=c(1,2,3,4,5)

期望的结果是 1

最佳答案

如果您想要具有非零元素的列,这意味着它们可能具有零但并非所有行都是零,那么以下工作:

mat<-matrix(rep(0,2*5),ncol=2)
mat[,1]=c(1,2,3,4,5)

sum(colSums(mat!=0)!=0)
#> [1] 1

但是如果你想找到没有零的列,请看下面。我正在举一个例子来更好地说明这一点:

mat2<-matrix(rep(0,4*5),ncol=4)
mat2[,1]=c(0,2,3,4,5)
mat2[,2]=c(1,2,3,4,5)
mat2[,3]=c(0,0,0,-1,1)

sum(colSums(mat2!=0)!=0) #count of non-zero columns
#> [1] 3

sum(colSums(mat2!=0)==nrow(mat2)) #count of columns with no zeros
#> [1] 1

如果您想找出哪些列不为零,请使用 which 而不是 sum:

which(colSums(mat2!=0)!=0) #non-zero columns
#> [1] 1 2 3


which(colSums(mat2!=0)==nrow(mat2)) #columns with no zeros
#> [1] 2

关于r - 计算矩阵中非零列的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56446789/

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