【问题标题】:How do i use a loop to delete columns in a data frame?如何使用循环删除数据框中的列?
【发布时间】:2018-11-26 11:28:33
【问题描述】:

我的代码:

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

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

【问题讨论】:

  • SMI_Mly[paste0("V", c(1:10))] &lt;- NULL,如果解决了您的问题,也请考虑accept Tim 的回答。

标签: r loops dataframe


【解决方案1】:

您可以在这里使用适当的子集:

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

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

【讨论】:

    猜你喜欢
    • 2017-10-28
    • 2020-03-13
    • 2023-03-18
    • 2019-10-10
    • 2020-11-11
    • 2012-10-04
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    相关资源
    最近更新 更多