r - 如何使用循环删除数据框中的列?
问题描述
我的代码:
SMI_Mly$V1 <- NULL
SMI_Mly$V2 <- NULL
SMI_Mly$V3 <- NULL
SMI_Mly$V4 <- NULL
...
SMI_Mly$V10 <- NULL
我确信有一种更好更短的方法可以从数据框中删除所有这些列。也许通过使用循环?有人可以告诉我怎么做吗?
解决方案
您可以在此处使用适当的子集:
cols <- paste0("V", c(1:10))
indices <- sapply(cols, function(x) { grep(x, names(df)) })
SMI_Mly[, -indices]
上述调用生成您希望从数据框中排除sapply
的列的位置索引。然后,我们可以使用子集表示法来排除这些列。V1
V10
推荐阅读
- python - 使用带有异常值的 Matplotlib 手动绘制箱线图
- c++ - 为什么模板参数推导因 std::function 回调的可变模板参数而失败?
- python - Django ORM中的反向外键关系
- angular - ionic - sqllite 插入多行
- spring-boot - docker不工作的spring boot教程?
- php - 在独立(不带 Laravel)刀片模板中使用函数
- java - Java 13 对 Eclipse 的支持
- asp.net - 浏览器后退按钮在 asp.net 上丢失会话
- python - 使用布尔数组的 Numpy 索引
- java - 我是否应该删除继承类中未使用可空值注释的覆盖方法的可空性