如何使用循环删除数据框中的列?

时间:2018-11-26 11:28:33

标签: r loops dataframe

我的代码:

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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