背景:
施工事件发生在某条道路上。这些事件基于Lane#,Layer#,SP和EP(起始位置和结束位置)等数据。
现在您可以对车道中的特定图层执行以下两项操作:
一个车道的整个层不是一天之内完成的,因此在第一天,他们可以将第4层从SP = 0到EP = 75放在一起,依此类推。
数据:
我的数据如下:
Lane#|Layer#|SP |EP |Start_Thick|End_Thick
1 |1 |0 |150|0 |0
1 |2 |0 |150|12 |12
1 |3 |0 |150|10.5 |10.5
1 |4 |0 |150|2 |2
1 |5 |0 |100|1 |1 <<
1 |5 |100|125|1 |1.5 <<
1 |5 |125|150|1.5 |1.5 <<
1 |6 |0 |50 |2 |2
1 |6 |50 |150|2 |2
结果:
当我说在SP> = 0和EP <= 150时获取1道快照时,我想要得到的结果是:
structure(list(laneid = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L), Activity = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L,
1L), .Label = c("Add", "Sub"), class = "factor"), Date = structure(c(971755200,
971755200, 971755200, 971755200, 971755200, 971755200, 1129780800,
1129780800, 1129780800, 1129780800), class = c("POSIXct", "POSIXt"
), tzone = ""), Layerid = c(1L, 2L, 3L, 4L, 5L, 5L, 5L, 5L, 6L,
6L), sp = c(0L, 0L, 0L, 0L, 0L, 100L, 0L, 125L, 0L, 50L), ep = c(150L,
150L, 150L, 150L, 100L, 150L, 125L, 150L, 50L, 150L), Start_Thick = c(0,
12, 10.5, 2, 2, 2, -1, -1, 2, 2), End_Thick = c(0, 12, 10.5,
2, 2, 3, -1, -1.5, 2, 2)), .Names = c("laneid", "Activity", "Date",
"Layerid", "sp", "ep", "Start_Thick", "End_Thick"), row.names = c(NA,
10L), class = "data.frame")
原始表中的前两个条目显示了添加的物料,后两个条目显示了从不同位置移除的物料。我之前从未尝试使用R进行插值,因此不确定是否可以这样做,但我将不胜感激。
我可能会错过一些信息,因此如有需要,随时询问其他详细信息。
DPUT:
for i in df[1:]:
if i == 'a' or i == 'b' or i == 'b':
data[i] = df[i]* 4
elif i == 'CZK_fwdp':
data[i] = df[i]* 7
else:
data[i] = df[i]* 5
break