r - 用于创建具有较小值的矩阵的 R 代码
问题描述
我刚刚学习 R,我得到了一个关于使用 apply 和 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", "Column 3")))
但是,那么我将如何调用 6 中更小的值 Then function apply 我使用如下
apply(A, 2, A<6)
解决方案
这是一个没有apply
.
A[, colSums(A < 6) == nrow(A)]
# Column 1 Column 2
#Row-1 1 5
#Row-2 0 5
#Row-3 3 0
解释
第一步是创建一个分配TRUE
给所有值 < 6的逻辑矩阵
A < 6
# Column 1 Column 2 Column 3
#Row-1 TRUE TRUE TRUE
#Row-2 TRUE TRUE FALSE
#Row-3 TRUE TRUE TRUE
我们使用这个矩阵并计算每一列的总和(TRUE
等于 1,FALSE
等于 0)。这将返回一个命名向量。
colSums(A < 6)
#Column 1 Column 2 Column 3
# 3 3 2
您正在寻找所有值都小于 6 的列,因此我们需要检查每列中的总和是否等于矩阵的行数。
colSums(A < 6) == nrow(A)
#Column 1 Column 2 Column 3
# TRUE TRUE FALSE
然后使用此逻辑向量对您的列进行子集化。
A[, colSums(A < 6) == nrow(A)]
推荐阅读
- javascript - 如何将自定义字体添加到 jsPDF
- node.js - 移动到新的开发机器后运行 node.js 项目时出错:[!] SyntaxError: Unexpected token { in rollup.config.js
- python - 如何使用熊猫根据同一数据框中另一列的条件获取列值的连续平均值
- google-cloud-platform - 如何防止 Google Cloud Dataproc 集群虚拟机实例自动关闭?
- spring-data-neo4j - 使用spring数据neo4j节点存储库获取关系属性
- c# - 如何在 Visual Studio 2019 中引用不同版本的未签名 dll
- python - 未知 URL 类型:c - Python 和 Tensorflow
- r - 尝试激活 XML 包时,RStudio 抛出有关 R 版本的错误
- javascript - Mongoose Schema 方法:错误 - 模型方法不是函数
- google-apps-script - 有没有办法在谷歌工作表上选择一组特定的单元格并将它们复制到另一个工作表?