python - R语言中带有分位数的滚动平均值
问题描述
roll = df.rolling(window=3, center=False).quantile(0.5)
我作为 DF 传递 [72,73,74,71,75,72,77,75,72,79,73,72]
我得到最小74
最大值77
我在 Python 中做的这段代码
我想在 R 中做到这一点
R 中有很多库,caTools
还有更多
runquantile(data[,2],3,probs = 0.5)
(我试过这个)
但没有人正常工作
请帮帮我
编辑。
根据 OP 评论,这里是数据和代码。这对我有用。
DF <- c(72, 73, 74, 71, 75, 72, 77, 75, 72, 79, 73, 72)
runquantile(DF, 3, probs = 0.5)
解决方案
几乎没有例外,任何对我“滚动”的东西都暗示了这个zoo
包:
zoo::rollapply(DF, k=3, FUN=median)
# [1] 73 73 74 72 75 75 75 75 73 73
### this returns length(DF)-2*floor(width/2),
### problem if putting into a data.frame .. if so, then pad it:
zoo::rollapply(DF, 3, FUN=median, fill=NA)
# [1] NA 73 73 74 72 75 75 75 75 73 73 NA
(我将从这里开始。)
分位数:
zoo::rollapply(DF, width=3, quantile, probs=0.5, fill=NA)
# 50% 50% 50% 50% 50% 50% 50% 50% 50% 50%
# NA 73 73 74 72 75 75 75 75 73 73 NA
具有多个的分位数probs
返回一个矩阵:
zoo::rollapply(DF, width=3, quantile, probs=c(0.5,0.6), fill=NA)
# 50% 60%
# [1,] NA NA
# [2,] 73 73.2
# [3,] 73 73.2
# [4,] 74 74.2
# [5,] 72 72.6
# [6,] 75 75.4
# [7,] 75 75.4
# [8,] 75 75.4
# [9,] 75 75.8
# [10,] 73 74.2
# [11,] 73 74.2
# [12,] NA NA
同样的事情,但我们可以编写一个函数(匿名或命名)来做我们需要的任何事情:
zoo::rollapply(DF, width=3, FUN = function(x) quantile(x, probs=c(0.5,0.6)), fill=NA)
为清楚起见,您的陈述“我得到最小 74 最大 77”可能会产生误导。我得到了完整的数据:
In [15]: DF = pd.DataFrame({'B': [72,73,74,71,75,72,77,75,72,79,73,72]})
In [16]: DF.rolling(window=3, center=False).quantile(0.5)
Out[16]:
B
0 NaN
1 NaN
2 73.0
3 73.0
4 74.0
5 72.0
6 75.0
7 75.0
8 75.0
9 75.0
10 73.0
11 73.0
因为center=False
,也许上面的调用zoo::rollapply
应该使用align=
:
zoo::rollapply(DF, width=3, quantile, probs=0.5, fill = NA, align="right")
# 50% 50% 50% 50% 50% 50% 50% 50% 50% 50%
# NA NA 73 73 74 72 75 75 75 75 73 73
50%
标签是使用的产物,可以quantile
安全地忽略和/或删除,如
zoo::rollapply(DF, width=3, quantile, probs=0.5, fill = NA, align="right", names=FALSE)
# [1] NA NA 73 73 74 72 75 75 75 75 73 73
推荐阅读
- paypal - PayPal Checkout JavaScript:更改货币而不重定向或刷新页面
- javascript - 返回不匹配的项目的条件是什么
- python - 从字典中的列表中有效地提取一组唯一值
- docker - docker-compose build 需要很长时间 构建时我可以启用详细/调试日志吗?
- ios - 如果从 Apple Music 播放音频,SFSpeechRecognizer 无法在真实设备上运行
- c++ - 错误:使用未声明的标识符“类名”
- c# - C# 发布 AJAX 空 json 结果
- javascript - JS jquery用数组中的值替换多个id属性
- php - 使用 Dockerfile 为 PHP 5.3 安装 mbstring
- javascript - HTML/CSS:文本内容溢出时如何制作段落?+更多问题