【发布时间】:2017-05-26 05:11:43
【问题描述】:
问题陈述
鉴于下面的数据集有两列 Column1 和 Column 2,再添加两列名为 Counter 和 Counting time。初始化counter和Counter time的条件如下:
- 只有当
Column1 > 1和Column2 = 0中的值时,计数器才应该递增 - 计数器必须在条件满足行的 2 个值后开始递增
-
Counting time必须包含序列发生的次数值(满足条件的数据点序列)
具有预期输出的数据框
Column1 Column2 Counter Counter_Time
1.1254 2.784 0 0
4.678 7.985 0 0
8.89 0 0 1
7.65 0 0 1
3.54 0 1 1
4.32 0 2 1
9.83 0 3 1
3.86 4.3 0 1
5.63 9.8 0 1
4.53 0 0 2
6.83 0 0 2
3.431 0 4 2
8.976 0 5 2
9.864 0 6 2
7.3 9.2 0 2
2.3 3.2 0 2
4.3 0 0 3
2.1 0 0 3
4.32 0 7 3
我遇到了类似的问题,得到了关于如何增加计数器的答案,但我无法满足上述条件。请注意,计数器应该在满足条件的两行之后开始。
来自数据集的观察
- 第3行满足条件,
counter未初始化但Counter_Time已递增 -
Counter已经从第 5 行开始(根据条件前 2 行的条件满足值不应该触发计数器) - 第 8 行的计数器返回 0,
Counter_Time保持不变 - 同样,
Counter已从第 12 行开始递增,不考虑第 10 行和第 11 行。但Counter_time在第 10 行递增
我已经详细阐述了问题陈述,以便专家清楚地提供准确的解决方案。
【问题讨论】:
-
这是作业题吗?很好,你仔细考虑了这个问题,但是 SO 上的人不应该为你做功课。
-
@Marius 不,这是我的 Vehicle Prognostics 项目工作的一部分,这只是一个示例数据框,但我的实际数据约为 500K 值,我知道这可以使用 for 循环来实现,但是我从一篇类似的帖子中了解到,R 中的 for 循环速度较慢。因此,我想请专家提供逻辑和优化脚本,以便我可以改进。
-
@Marius 尊敬的先生/女士,如果您认为这是一种初学者级别的问题/喜欢给孩子做作业的问题,那么这是我的亲切请求,请让我知道解决方案.我承认我是 R 编程的初学者,我从过去几天开始使用 R 进行编码,我认为向专家寻求指导并没有错。
-
我并不是在暗示这是一个初学者级别的问题,您的问题只是措辞有点像家庭作业问题(我很高兴接受它不是)。无论您是不是初学者,寻求帮助都可以。