[英]data.table & column names
我正在使用data.table
獲取一列中的一些基本統計信息,同時按另一列進行過濾。
這是命令
stats <- as.data.frame(mydata[, j = list(Sum = sum(as.numeric(get(selection))),
Average = mean(as.numeric(get(selection))),
Count = length(get(selection))),
by = list(get(filters))])
在哪里:
mydata
是一個包含 20 列左右的data.table
selection
是以編程方式傳遞的列名filters
也是以編程方式傳遞的列名如果我將自己限制為一個過濾器(一列),則一切正常,但我想過濾多於一列。
可以這樣做:
by = list(get(filters[1]), get(filters[2]), ...)
但是,這需要我知道將使用多少個過濾器。 這是我不想擁有的限制。
我如何編寫by =
以采用任意數量的過濾器(列名) - 我剛剛嘗試過mget(filters)
並且這不起作用。
Data.tables by
參數接受列名的字符向量(請參閱文檔: help("data.table")
)。 不需要get
。 只需使用by = c(filters)
。
例子:
library(data.table)
DT <- data.table(mtcars)
filters <- c("am", "gear")
DT[, mean(mpg), by=c(filters)]
# am gear V1
#1: 1 4 26.27500
#2: 0 3 16.10667
#3: 0 4 21.05000
#4: 1 5 21.38000
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.