正体不明の列を無視してデータフレームの列を並べ替え

StackOverflow https://stackoverflow.com/questions/1538798

  •  20-09-2019
  •  | 
  •  

質問

私はこれを行うには良い方法があるように持っていると思っています。

私は、データフレームの列の順序を変更しようとしています。 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) 
    }
}
役に立ちましたか?

解決

あなただけのこの操作を行うことができませんか?

ordered.colnames <- ordered.colnames[ordered.colnames %in% colnames(dataset)]
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top