簡體   English   中英

R - 自動排除 quantile_split function

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM