我假設您使用我的「splitstackshape」包中的stratified
。
該錯誤解釋了需要什麼:命名向量(例如c(a = 5, b = 10)
,例如)。
但是,該函數的該功能只假定一個變量用於分層。要解決這個問題,你可以通過粘貼你的「Loc」和「Format」列來創建一個新的分組變量。
這裏有一個簡單的例子....
開始與原始數據集的一些樣本數據,並表示要對樣本大小的數據集。
library(splitstackshape)
set.seed(1)
mydf <- data.table(strata1 = sample(letters[1:2], 25, TRUE),
strata2 = sample(c("A", "B"), 25, TRUE),
values = sample(25, replace = TRUE))
head(mydf)
# strata1 strata2 values
# 1: a A 12
# 2: a A 22
# 3: b A 11
# 4: b B 7
# 5: a A 2
# 6: b A 3
wanted <- data.table(strata1 = c("a", "a", "b", "b"),
strata2 = c("A", "B", "A", "B"),
count = c(2, 3, 5, 2))
wanted
# strata1 strata2 count
# 1: a A 2
# 2: a B 3
# 3: b A 5
# 4: b B 2
爲了獲得輸出,我們將添加一個名爲「KEY」的列,將兩個分層列相結合。你可以對兩個數據集都這樣做,但我只是簡單地用「想要的」數據集來完成它。
out <- stratified(
mydf[, KEY := paste(strata1, strata2, sep = "_")], "KEY",
with(wanted, setNames(count, paste(strata1, strata2, sep = "_"))))
out
# strata1 strata2 values KEY
# 1: a A 21 a_A
# 2: a A 2 a_A
# 3: a B 9 a_B
# 4: a B 3 a_B
# 5: a B 9 a_B
# 6: b A 17 b_A
# 7: b A 12 b_A
# 8: b A 3 b_A
# 9: b A 17 b_A
# 10: b A 13 b_A
# 11: b B 8 b_B
# 12: b B 20 b_B
由原始的分層變量比較所產生的樣本大小:
out[, .N, .(strata1, strata2)]
# strata1 strata2 N
# 1: a A 2
# 2: a B 3
# 3: b A 5
# 4: b B 2
當你刪除'$人口後SampleSize'括號,會發生什麼? – ANG
不發佈您的數據的圖像,他們沒有幫助,因爲我們無法加載圖像。閱讀本網站的幫助和[this](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)並編輯您的問題。 – shea