【问题标题】:Reorder dataframe columns while ignoring unidentified columns重新排序数据框列,同时忽略未识别的列
【发布时间】:2010-12-05 01:24:38
【问题描述】:

我认为必须有更好的方法来做到这一点。

我正在尝试重新排序数据框中的列。我有一个列表,ordered.colnames,代表新的排序 - 但 dataset 中的某些列不存在。为避免出现“undefined columns selected”错误,我将相关切片封装在 try() 函数中。

以下方法有效,但有更好的方法吗?

> ordered.colnames[1:5]
[1] "lady_22102"         "attentions_83249"   "perseverance_17864"
[4] "cecil_84477"        "cecilia_133476"

dataset.reordered = c() 
for (i in 1:length(ordered.colnames)) {
    col = NA
    col = try(cbind(dataset[,ordered.colnames[i]]),silent=TRUE)
    if (!inherits(col,"try-error")) {
        colnames(col) = ordered.colnames[i]
        dataset.reordered = cbind(dataset.reordered, col) 
    }
}

【问题讨论】:

    标签: r dataframe


    【解决方案1】:

    你就不能这样做吗?

    ordered.colnames <- ordered.colnames[ordered.colnames %in% colnames(dataset)]
    

    【讨论】:

      猜你喜欢
      • 2017-09-18
      • 1970-01-01
      • 2014-06-19
      • 2021-03-31
      • 2020-02-24
      • 1970-01-01
      • 2018-01-13
      • 1970-01-01
      • 2019-01-23
      相关资源
      最近更新 更多