[英]Accessing columns in data.table using a character vector of column names
[英]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
,它也可以按降序排序。
請注意setkey
與setkeyv
和setorder
與setorderv
之間的區別。 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.