我有一个数据框A和一个向量b.

我想通过执行A[,-b]来消除A中索引在b中的所有列

有时向量b的长度为0.在这种情况下,我希望返回整个数据帧A.相反,我得到了以下错误:

包含0列和1259行的数据框

我如何确保这种情况不会发生?

推荐答案

您可以使用setdiff():

A[, setdiff(1:ncol(A), b)]

此方法可以处理

  • b <- NA
  • b <- NULL
  • b <- integer(0)

并返回整个数据A.

R相关问答推荐

如何替换某个字符的所有出现,但如果该字符是字符串中的第一个,则不替换?

R通过字符串中的索引连接数据帧r

按自定义数字模式对变量名称排序

如何将y轴上的线定位得彼此更近

基于shiny 应用程序中的日期范围子集xts索引

使用对管道内单元格的引用生成新变量

如何根据组大小应用条件过滤?

有没有一个R函数允许你从一个数字变量中提取一个数字,而不考虑它的位置(不仅仅是第一个或最后一个数字?

修改用R编写的用户定义函数

将数据集中的值增加到当前包含的最大值

使用strsplit()将向量操作为数据框

R s iml包如何处理语法上无效的因子级别?'

对于变量的每个值,仅 Select 包含列表中所有值的值.R

如何从像glm这样的模型中提取系数表的相关性?

在R中创建连续的期间

按列中显示的配对组估算NA值

是否可以将线性模型的p值添加到tbl_summary中

按两个因素将观测值分组后计算单独的百分比

在ggploy中创建GeV分布时出错

如何在AER::ivreg中指定仪器?