使用R进行插值和重组数据

时间:2018-10-18 13:15:11

标签: r interpolation

背景

施工事件发生在某条道路上。这些事件基于Lane#,Layer#,SP和EP(起始位置和结束位置)等数据。

我创建了一张图片以使其更易于可视化
enter image description here

现在您可以对车道中的特定图层执行以下两项操作:

  1. 摆脱一些材料
  2. 添加一些材料

一个车道的整个层不是一天之内完成的,因此在第一天,他们可以将第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")

第5层可以这样解释:
enter image description here

原始表中的前两个条目显示了添加的物料,后两个条目显示了从不同位置移除的物料。我之前从未尝试使用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    

0 个答案:

没有答案