簡體   English   中英

按列名的字符向量對 data.table 排序

[英]Order data.table by a character vector of column names

我想通過一個包含列名的變量來排序data.table

我已經嘗試了 + eval , get and c` 的所有組合,但都沒有成功:

我有colVar = "someColumnName"

我想將此應用於: DT[order(colVar)]

data.table具有特殊功能,它將通過引用修改您的數據集,而不是將其復制到新對象。

您可以使用setkey或(在版本 >= 1.9.4 中) setorder ,它也可以按降序排序。

請注意setkeysetkeyvsetordersetorderv之間的區別。 v注意您可以傳遞帶引號的變量名或包含變量名的變量。

使用@andrewzm 數據集

dtbl
#    x y
# 1: 1 5
# 2: 2 4
# 3: 3 3
# 4: 4 2
# 5: 5 1

setorderv(dtbl, colVar)[] # or `sekeyv(dtbl, colVar)[]` or `setorderv(dtbl, "y")[]`
#    x y
# 1: 5 1
# 2: 4 2
# 3: 3 3
# 4: 2 4
# 5: 1 5

您可以對數據表使用雙括號:

library(data.table)
dtbl <- data.table(x = 1:5, y = 5:1)
colVar = "y"
dtbl_sorted <- dtbl[order(dtbl[[colVar]])]
dtbl_sorted

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM