【发布时间】: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)
}
}
【问题讨论】: