首页 > 解决方案 > 如何使用循环删除数据框中的列?

问题描述

我的代码:

SMI_Mly$V1 <- NULL
SMI_Mly$V2 <- NULL
SMI_Mly$V3 <- NULL
SMI_Mly$V4 <- NULL
...
SMI_Mly$V10 <- NULL

我确信有一种更好更短的方法可以从数据框中删除所有这些列。也许通过使用循环?有人可以告诉我怎么做吗?

标签: rloopsdataframe

解决方案


您可以在此处使用适当的子集:

cols <- paste0("V", c(1:10))
indices <- sapply(cols, function(x) { grep(x, names(df)) })
SMI_Mly[, -indices]

上述调用生成您希望从数据框中排除sapply的列的位置索引。然后,我们可以使用子集表示法来排除这些列。V1V10


推荐阅读