1
我有以下RLE對象:RLE():返回平均長度只有當值== TRUE
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 ...
我想找個長度的平均值(mean),如果在相應的項目值== 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
我不能獲得值== == TRUE的長度,但是有沒有更好的方法來做到這一點?或者,也許我可以在不使用任何軟件的情況下獲得類似的結果?從列表轉換到數據框有點繁瑣,我確信有一條巧妙的方法可以做到這一點。我已經看到,這個問題的衍生物已經循環過,但我無法從這些問題中得到更好的結果,所以您的幫助非常值得讚賞。
那太好了!比我擁有的更漂亮! – Freddie
爲了讀者的好處,你可以通過添加!來獲得長度值的均值= FALSE!運算符之前的值,如下所示:with(NoOfTradesAndLength,mean(lengths [!values])) – Freddie
@FreddiE是的,就是這樣 – akrun