【发布时间】:2016-12-07 01:26:11
【问题描述】:
我有以下 rle 对象:
Run Length Encoding
lengths: int [1:189] 4 5 3 15 6 4 9 1 9 5 ...
values : logi [1:189] FALSE TRUE FALSE TRUE FALSE TRUE ...
如果值中的相应项目 == TRUE,我想找到长度的平均值(平均值)(当值 == FALSE 时我对长度不感兴趣)
df <- data.frame(values = NoOfTradesAndLength$values, lengths = NoOfTradesAndLength$lengths)
AveLength <- aggregate(lengths ~ values, data = df, FUN = function(x) mean(x))
返回这个:
values lengths
1 FALSE 7.694737
2 TRUE 5.287234
我现在可以获得 values == TRUE 的长度,但是有没有更好的方法呢?或者,我可以在不使用 rle 的情况下获得类似的结果吗?从列表转换为数据框感觉有点繁琐,我相信有一种巧妙的方法可以做到这一点。我已经看到这个问题的衍生品之前已经循环过,但我无法从中找到更好的东西,因此非常感谢您的帮助。
【问题讨论】:
标签: r