r - r 删除具有空索引的列
问题描述
我们都知道如何使用列索引向量从矩阵中排除列:
v=c(1,3)
a = matrix(rnorm(12),nrow=3)
a[,-v]
但是当索引向量为空时,返回矩阵为空:
v = numeric()
a[,-v]
# returns matrix with 0 columns
当排除的列索引集为空时,如何使返回的矩阵成为原始矩阵?
一定有比使用繁琐的方法更花哨的方法if else
:
if (length(v)==0) {
b = a
} else {
b = a[,-v]
}
解决方案
我们可以创建一个索引setdiff
j1 <- setdiff(seq_len(ncol(a)), v)
然后是子集'a'
a[, j1, drop = FALSE]
推荐阅读
- javascript - 如何使用具体化 css 移动到下一个/上一个选项卡?
- javascript - 当我过滤而不是显示随机序列但我希望序列中的过滤结果中没有序列时
- javascript - 我该如何验证和使用 javascript 标记
- mysql - mysql查询为每个空记录增加一个计数器或标记..?
- spring-mvc - 使用用于 Spring boot+Velocity 项目的 toolboxConfigLocation 渲染速度模板时的 NPE
- javascript - 引导导航不会在移动屏幕上折叠以进行同一页面导航(#sections)?
- intel - Intel 8086 CPU 的 20 位地址中如何存储 16 位数据?
- android - 不同页面中的数据库内容像相同的布局
- android - 当活动进入全屏模式时,如何阻止布局改变大小?
- java - 从 getOnKeyPressed 处理 EventHandler