用于创建具有较小值的矩阵的R代码
我刚刚学习了R,我得到了一个关于使用apply and all创建一个包含所有值小于6的列的矩阵的任务 这是矩阵输出的代码用于创建具有较小值的矩阵的R代码,r,R,我刚刚学习了R,我得到了一个关于使用apply and all创建一个包含所有值小于6的列的矩阵的任务 这是矩阵输出的代码 A<-matrix(c(1, 5, 5, 0, 5, 6, 3, 0, 3), nrow = 3, ncol = 3, byrow = TRUE, dimnames = list(c("Row-1", "Row-2", "Row-3"), c("Column 1", "Column 2", "Co
A<-matrix(c(1, 5, 5, 0, 5, 6, 3, 0, 3), nrow = 3, ncol = 3, byrow = TRUE,
dimnames = list(c("Row-1", "Row-2", "Row-3"),
c("Column 1", "Column 2", "Column 3")))
A这里有一个选项没有apply
A[, colSums(A < 6) == nrow(A)]
# Column 1 Column 2
#Row-1 1 5
#Row-2 0 5
#Row-3 3 0
我们使用这个矩阵计算每列的和(TRUE
等于1,FALSE
等于0)。这将返回一个命名向量
colSums(A < 6)
#Column 1 Column 2 Column 3
# 3 3 2
colSums(A<6)
#第1栏第2栏第3栏
# 3 3 2
您正在查找所有值都小于6的列,因此我们需要检查每列中的总和是否等于矩阵的行数
colSums(A < 6) == nrow(A)
#Column 1 Column 2 Column 3
# TRUE TRUE FALSE
colSums(A<6)=nrow(A)
#第1栏第2栏第3栏
#真假
然后使用该逻辑向量对列进行子集划分
A[, colSums(A < 6) == nrow(A)]
A[,colSums(A<6)=nrow(A)]
colSums(A < 6) == nrow(A)
#Column 1 Column 2 Column 3
# TRUE TRUE FALSE
A[, colSums(A < 6) == nrow(A)]