下面是我想要做的一個示例。 eval(substitute(*))
效果很好,如圖所示here,但使代碼有點難以閱讀。我想知道是否有更好的東西我不知道。將用戶輸入傳遞給data.table中的'by'和重整公式中的公式 - r
我想能夠選擇表格的行和列變量(在最後)。 所以,如果我有
input.col <- 'Gender'
input.row <- 'Region'
我希望能夠將這些參數傳遞給數據表,而不是Region
和Gender
被用作以下。
library(data.table)
library(reshape)
set.seed(5)
DT <- data.table(Region = sample(x = c('Asia', 'Americas', 'Africa', 'Europe', 'Oceania'), size = 200, replace = T), Weight = runif(n = 200, min = 1, max = 5), Age = round(x = 10*rexp(n = 200, rate = 1), digits = 0), Gender = sample(x = c('Male', 'Female', 'Gender diverse'), size = 200, replace = T, prob = c(0.49, 0.49, 0.02)))
cast(data = DT[, sum(Weight), .(Region, Gender)], formula = Region~Gender, fun.aggregate = sum, value = 'V1')
我想要得到下表
Region Female Gender diverse Male
1 Africa 32.95019 3.222125 77.50863
2 Americas 49.12787 0.000000 84.97214
3 Asia 41.04879 0.000000 55.43294
4 Europe 45.39469 4.296767 47.76714
5 Oceania 65.89198 1.439075 72.27496
謝謝!
這是一個偉大的名單。它的長度也與我的無知成正比!謝謝。 – Ameya