【发布时间】:2020-06-29 05:12:38
【问题描述】:
我有大约 36 个感兴趣区域 (ROI) 的数据。每个 ROI 380 像素。 我的数据是这样的:
ROI_name T_K
1 bt_full_05 303.88
1.1 bt_full_05 303.93
1.2 bt_full_05 303.72
1.3 bt_full_05 303.43
1.4 bt_full_05 302.93
1.5 bt_full_05 302.93
...
36.362 bt_full_40 301.65
36.363 bt_full_40 301.47
36.364 bt_full_40 301.52
36.365 bt_full_40 302.02
36.366 bt_full_40 303.28
36.367 bt_full_40 303.78
我想计算每个 ROI 的平均 T_K,但过滤掉低于给定分位数的值,例如0.25,并输出直到该分位数的值的平均值。理想情况下,我可以报告几个分位数的平均 T_K,0.1、0.25、0.5... 我有:
groupquant <- cleared_data %>% group_by(ROI_name) %>%
summarise(quants = quantile(T_K, 0.1))
这给了我分位数。但是这个
groupquant <- cleared_data %>% group_by(ROI_name) %>%
filter(cleared_data$T_K <= quantile(T_K, 0.1)) #%>%
抛出
错误:结果的长度必须是 392,而不是 14082
我无处可去!干杯,安德鲁。
【问题讨论】:
-
我想知道如果你改用
filter(T_K <= quantile(T_K, 0.1))会发生什么。 -
爵士乐是正确的。问题是,通过使用
cleared_data$T_K,您将长度为 14082 的完整向量与长度为 392 的向量的子组进行比较。只需使用T_K -
感谢@jazzurro,一切顺利。但我也想计算 vals