weighted_table()
根據 ...
中提供的因子和 weights
中提供的雙權重向量計算加權列聯表。它可以被視為 base::table()
的加權擴展和 stats::xtabs()
的替代方案。
weighted_table()
在構造表時始終使用 levels()
返回的精確級別集。這會產生以下屬性:
-
除非有明確的
NA
因子級別,否則因子中發現的缺失值永遠不會包含在表中。如果需要,可以使用base::addNA()
或forcats::fct_expand(x, NA)
將其添加到因子中。 -
在基礎數據中實際未使用的因子中找到的級別包含在表中,其值為
0
。如果需要,您可以通過factor()
重新運行因子或調用forcats::fct_drop()
來刪除未使用的因子級別。
有關這些屬性的更多信息,請參閱示例部分。
參數
- ...
-
加權表中使用的等長因子。如果
...
被命名,這些名稱將傳播到結果表的 "dimnames names" 上。必須至少提供一個因子。 - weights
-
用於填充加權表單元格的雙權重向量。該長度必須與
...
中提供的因子相同。 - na_remove
-
單個
TRUE
或FALSE
用於處理在求和權重時是否應刪除weights
中的缺失值。
例子
x <- factor(c("x", "y", "z", "x", "x", "y"))
y <- factor(c("a", "b", "a", "a", "b", "b"))
w <- c(1.5, 2, 1.1, .5, 3, 2)
weighted_table(x = x, y = y, weights = w)
#> y
#> x a b
#> x 2.0 3
#> y 0.0 4
#> z 1.1 0
# ---------------------------------------------------------------------------
# If `weights` contains missing values, then missing values will be
# propagated into the weighted table
x <- factor(c("x", "y", "y"))
y <- factor(c("a", "b", "b"))
w <- c(1, NA, 3)
weighted_table(x = x, y = y, weights = w)
#> y
#> x a b
#> x 1 0
#> y 0 NA
# You can remove the missing values while summing up the weights with
# `na_remove = TRUE`
weighted_table(x = x, y = y, weights = w, na_remove = TRUE)
#> y
#> x a b
#> x 1 0
#> y 0 3
# ---------------------------------------------------------------------------
# If there are missing values in the factors, those typically don't show
# up in the weighted table
x <- factor(c("x", NA, "y", "x"))
y <- factor(c("a", "b", "a", NA))
w <- 1:4
weighted_table(x = x, y = y, weights = w)
#> y
#> x a b
#> x 1 0
#> y 3 0
# This is because the missing values aren't considered explicit levels
levels(x)
#> [1] "x" "y"
# You can force them to show up in the table by using `addNA()` ahead of time
# (or `forcats::fct_expand(x, NA)`)
x <- addNA(x, ifany = TRUE)
y <- addNA(y, ifany = TRUE)
levels(x)
#> [1] "x" "y" NA
weighted_table(x = x, y = y, weights = w)
#> y
#> x a b <NA>
#> x 1 0 4
#> y 3 0 0
#> <NA> 0 2 0
# ---------------------------------------------------------------------------
# If there are levels in your factors that aren't actually used in the
# underlying data, then they will still show up in the table with a `0` value
x <- factor(c("x", "y", "x"), levels = c("x", "y", "z"))
y <- factor(c("a", "b", "a"), levels = c("a", "b", "c"))
w <- 1:3
weighted_table(x = x, y = y, weights = w)
#> y
#> x a b c
#> x 4 0 0
#> y 0 2 0
#> z 0 0 0
# If you want to drop these empty factor levels from the result, you can
# rerun `factor()` ahead of time to drop them (or `forcats::fct_drop()`)
x <- factor(x)
y <- factor(y)
levels(x)
#> [1] "x" "y"
weighted_table(x = x, y = y, weights = w)
#> y
#> x a b
#> x 4 0
#> y 0 2
相關用法
- R hardhat validate_prediction_size 確保預測具有正確的行數
- R hardhat default_recipe_blueprint 默認配方藍圖
- R hardhat is_blueprint x 是預處理藍圖嗎?
- R hardhat validate_column_names 確保數據包含所需的列名
- R hardhat default_formula_blueprint 默認公式藍圖
- R hardhat update_blueprint 更新預處理藍圖
- R hardhat validate_outcomes_are_univariate 確保結果是單變量
- R hardhat get_levels 從 DataFrame 中提取因子水平
- R hardhat add_intercept_column 向數據添加截距列
- R hardhat is_frequency_weights x 是頻率權重向量嗎?
- R hardhat model_offset 提取模型偏移
- R hardhat standardize 標準化結果
- R hardhat model_matrix 構建設計矩陣
- R hardhat is_importance_weights x 是重要性權重向量嗎?
- R hardhat run-mold 根據藍圖 Mold()
- R hardhat get_data_classes 從 DataFrame 或矩陣中提取數據類
- R hardhat fct_encode_one_hot 將一個因子編碼為 one-hot 指標矩陣
- R hardhat new_frequency_weights 構建頻率權重向量
- R hardhat validate_no_formula_duplication 確保公式中不出現重複項
- R hardhat default_xy_blueprint 默認 XY 藍圖
- R hardhat shrink 僅對所需列進行子集化
- R hardhat validate_outcomes_are_numeric 確保結果都是數字
- R hardhat scream ? 尖叫。
- R hardhat frequency_weights 頻率權重
- R hardhat refresh_blueprint 刷新預處理藍圖
注:本文由純淨天空篩選整理自Davis Vaughan等大神的英文原創作品 Weighted table。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。