我有一个像这样的数据文件:
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只有一个唯一值,不能完成tercile拆分。我的第一个问题是:,这个解释正确吗,?我对"length at least 2"这个部分感到困惑,因为我希望长度至少应该是3来执行一个tercile拆分,对吗?
如果解释是正确的,我的第二个问题是:如何自动排除这样的情况?我几乎没有足够的时间来查看大约300个Var2值并检查Var3值。我需要一个排除此类级别Var2的编码解决方案,这样前面提到的错误就不会出现。
发布于 2020-05-27 07:59:40
正如错误消息所述,split_quantile需要至少长度为2的向量,我们可以删除行数小于2的组,然后应用函数吗?
library(dplyr)
data %>%
group_by(Var2) %>%
filter(n() >= 2) %>%
mutate(Tercile = fabricatr::split_quantile(Var3, 3)) %>%
group_by(Var2, Tercile) %>%
summarise(Var1 = mean(Var1))https://stackoverflow.com/questions/62038079
复制相似问题