【发布时间】:2017-08-11 12:39:07
【问题描述】:
参考问题"Calculating average of based on condition",我需要根据F列计算E列的average
下面是我的数据框df 的一部分,但我的实际数据是 65K 值。
E F
3.130658445 -1
4.175605237 -1
4.949554963 0
4.653496112 0
4.382672845 0
3.870951272 0
3.905365677 0
3.795199341 0
3.374740696 0
3.104690415 0
2.801178871 0
2.487881321 0
2.449349554 0
2.405409636 0
2.090901539 0
1.632416356 0
1.700583696 0
1.846504012 0
1.949797831 0
1.963114449 0
2.033100326 0
2.014312751 0
1.997178247 0
2.143775497 0
基于上述帖子中提供的解决方案,以下是我的脚本。
setDT(df)[, Avg := c(rep(mean(head(d$fE, 5)), 5), rep(0, .N-5)),
cumsum(c(TRUE, diff(abs(F)!=1)==1))]
但执行时出现以下错误。
rep(0, .N - 5) 中的错误:'times' 参数无效
【问题讨论】:
-
该错误来自于尝试代表一个值 -n 次。试试
rep(0, -1) -
@Sotos 我仍然遇到同样的错误。
-
我知道,你应该是。我没有提供解决方案,我只是在解释错误:)
-
不是告诉回答者他们的代码不满足模糊的条件,而是明确显示给定示例的所需输出。如需更多指导:stackoverflow.com/questions/5963269/…顺便说一句,您的 q 应该是独立的,而不是要求人们阅读链接的材料。
标签: r data.table