[英]R - automatize exclusion from the quantile_split function
我有一個看起來像這樣的 dataframe:
Var1 Var2 Var3
100 B 15
200 A 16
700 A 13
500 C 10
這只是預覽數據,實際上它有 10000+ 行。
我正在執行以下操作:
data %>%
group_by(Var2) %>%
mutate(Tercile = fabricatr::split_quantile(Var3, 3)) %>%
group_by(Var2, Tercile) %>%
summarise(Var1 = mean(Var1))
這會導致以下錯誤消息:
The `x` argument provided to quantile split must be non-null and length at least 2.
據我了解,這意味着對於Var2
的某些值,Var3 只有 1 個唯一值,並且無法完成Var3
拆分。 我的第一個問題是:這種解釋正確嗎? 我對"length at least 2"
的部分感到困惑,因為我希望長度應該至少為 3 才能執行 tercile 分割,對吧?
如果解釋正確,我的第二個問題是:如何自動排除此類情況? 我沒有足夠的時間通過 Var2 的大約 300 個值來 go 並檢查 Var3 的值。 我需要一個排除這種級別的 Var2 的編碼解決方案,這樣前面提到的錯誤就不會出現。
正如錯誤消息所說split_quantile
需要一個至少長度為 2 的向量,我們可以刪除行數小於 2 的組,然后應用 function?
library(dplyr)
data %>%
group_by(Var2) %>%
filter(n() >= 2) %>%
mutate(Tercile = fabricatr::split_quantile(Var3, 3)) %>%
group_by(Var2, Tercile) %>%
summarise(Var1 = mean(Var1))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.