【发布时间】:2019-10-04 01:32:48
【问题描述】:
以下是有助于为以下问题创建样本的数据:
df1 <- data.frame(ID = c(1:5), Order_status_1 = c(1,1,0,0,1), Order_time_1 = c(20, 30, 0, 0, 47),
Order_status_1 = c(0,1,1,1,1), Order_time_1 = c(0, 36, 12, 24, 88), Order_status_3 = c(0, 1, 1, 0,
0), Order_time_3 = c(0, 40, 25, 0, 0), Order_status_4 = c(0, 1, 0, 0, 0), Order_time_3 = c(0, 65, 0,
0, 0), Order_close_date = c(100, 200, 300, 400, 500) )
预期输出
df2 <- data.frame(ID = c(1:5), Order_status_1 = c(1,1,0,0,1), Order_time_1 = c(20, 30, 0, 0, 47),
Order_status_2 = c(0,1,1,1,1), Order_time_2 = c(100, 36, 12, 24, 88), Order_status_3 = c(0, 1, 1, 0,
0), Order_time_3 = c(100, 40, 25, 400, 500), Order_status_4 = c(0, 1, 0, 0, 0), Order_time_4 =
c(100, 65, 300, 400, 500), Order_close_date = c(100, 200, 300, 400, 500) )
如您所见,最后一个(时间)列中的值被复制到包含 0 -> 的时间列中,位于非零时间值列之后。
我强烈认为循环应该从最后一个时间列开始检查 (0),直到它达到非零值,然后在相应的单元格中插入值 (100,200,300,400,500)。数据包含多行,这只是其中的一个示例。因此,请提供可以运行代码超过 1000 行的解决方案(例如 for 或 if 循环)。
【问题讨论】:
-
StackOverflow 不是代码编写服务。请通读Help Center,尤其是How do I ask a good question? 如果您遇到特定问题,请彻底研究,在这里彻底搜索,如果您仍然卡住,请发布您的代码和问题描述。另外,请记住包括Minimum, Complete, Verifiable Example。人们会很乐意提供帮助
标签: r