R,使用给定的用户输入对 data.table 进行排序

问题描述 投票:0回答:1

这是我的数据。

dt<-as.data.table(matrix(data = sample(c(paste0(sample(letters, 9), 1:120), round(runif(5) * 100)), 120, replace = TRUE),nrow = 20,ncol = 6,byrow = FALSE))

所有或部分列要么是数字、字母要么是两者的混合。 我需要根据哪些列的输入对数据进行排序,即是否仅 1 列或 2 列在一起或更多。

假设这是当前的用户输入

fromexcel<-c("V1", "V2", "V3")
  1. 但是代码需要是动态的,并且如果需要的话考虑更多的列。
  2. 用户请求的列不需要排序,但也可以
    c("V5", "V1")
    这样。

我一直使用

gtools::mixedsort()
,但欢迎任何其他有效的方法。

如果您觉得这篇文章有用,可以参考。 在 R 中对非常大的数据集进行排序

谢谢。

r data.table
1个回答
0
投票

一个选项:

dt[do.call(order, mget(fromexcel))]
© www.soinside.com 2019 - 2024. All rights reserved.