【发布时间】:2023-03-06 02:57:01
【问题描述】:
考虑以下数据表
t <- data.table(user1 = c(1,2), user3 = c(5,6), user2=c(3,4))
这将使t[[1]] = t$user1 , t[[2]] = t$user3 , t[[3]] = t$user2
如何对 t 的属性进行排序以生成 t[[2]] = t$user2 , t[[3]] = t$user3
原因是我想循环遍历属性(假设遍历所有 userx),同时保持其顺序 x 以供进一步使用。
我的循环是
for (i in 1: length(t))
{#i is used here}
而不是
for (attr in names(t))
有没有办法在 R 中实现这一点?
【问题讨论】:
-
见
?data.table::setcolorder。 -
完美,@mt1022。事实上,我的属性排序为:abc_user、def_user、Others、user1、user2、user3、.. user100。我想在最后推送
Others,同时保留其余部分。在不明确指出所有用户的情况下如何做到这一点? -
类似
setcolorder(t, c(names(t)[names(t) != 'Others'], 'Others'))? -
迷人。谢谢@mt1022
标签: r loops attributes data.table