Circular reference in R data frame not able to trace

58 Views Asked by At

I am new to R and have a deadline to complete this project where I am stuck in a circular reference kind of problem.

I want to trace the order from Add to execution/cancel, the process include either of following:

  1. add -> executed
  2. add -> cancel
  3. add -> modify -> executed / cancel
  4. add -> modify -> modify -> executed / cancel and so on

My table has a column S.No with unique no for each row, order type defining the type of entry, Trans Id: unique id for the transaction (however it remains the same only if the order type is not modified, in case of order type = modify, this transaction id goes to a new column and a new Transaction id is generated, so my query is to trace the journey of each order in a separate column with unique identifier order key which should remain same for the order from adding to execution/closing.

My table and desired output look like this:

enter image description here

I tried using:

dh$orderkey <- with[dh$orderkey , ifelse(dh$PTransID %in% dh$TransID)]

but it didnt work.

this is the dput out put for sample 100 rows :

structure(list(Data.key = c(92447, 94018, 94115, 94125, 95686, 
95792, 96323, 96328, 96331, 96342, 96358, 96370, 96555, 96579, 
96843, 97064, 97547, 97548, 97550, 97552, 97556, 98153, 98714, 
99986, 100970, 100971, 102728, 102730, 103755, 104061, 105912, 
106423, 106732, 106740, 107666, 109981, 110160, 111100, 113098, 
114056, 116035, 116764, 118487, 118514, 118864, 119300, 120130, 
120797, 121211, 121998, 122271, 123654, 124075, 124355, 124369, 
127332, 127454, 127932, 128241, 129703, 131033, 131354, 132234, 
133132, 133349, 133883, 134829, 134878, 135155, 138446, 138638, 
139527, 140353, 140903, 140930, 140934, 141075, 141447, 141738, 
142558, 143064, 144245, 145167, 145792, 145878, 148006, 148682, 
151001, 151221, 151253, 151287, 151750, 152474, 152662, 152864, 
153750, 153993, 154653, 154676, 154754), Data.Order_Type = c("order_Add(N)", 
"order_Add(N)", "order_Add(N)", "order_Add(N)", "order_Add(N)", 
"order_Add(N)", "order_Add(N)", "order_Add(N)", "order_Add(N)", 
"order_Add(N)", "order_Add(N)", "order_Add(N)", "order_Add(N)", 
"order_Add(N)", "order_Add(N)", "order_Add(N)", "order_Add(N)", 
"order_Add(N)", "order_Add(N)", "order_Add(N)", "order_Add(N)", 
"order_Add(N)", "order_Add(N)", "order_Add(N)", "order_Add(N)", 
"order_Add(N)", "order_Add(N)", "order_Add(N)", "order_Add(N)", 
"order_Add(N)", "order_Add(N)", "order_Add(N)", "order_Add(N)", 
"order_Add(N)", "order_Add(N)", "order_Add(N)", "order_Add(N)", 
"order_Add(N)", "order_Add(N)", "order_Add(N)", "order_Add(N)", 
"order_Add(N)", "order_Add(N)", "order_Add(N)", "order_Add(N)", 
"order_Add(N)", "order_Add(N)", "order_Add(N)", "order_Add(N)", 
"order_Add(N)", "order_Add(N)", "order_Add(N)", "order_Add(N)", 
"order_Add(N)", "order_Add(N)", "order_Add(N)", "order_Add(N)", 
"order_Add(N)", "order_Add(N)", "order_Add(N)", "order_Add(N)", 
"order_Add(N)", "order_Add(N)", "order_Add(N)", "order_Add(N)", 
"order_Add(N)", "order_Add(N)", "order_Add(N)", "order_Add(N)", 
"order_Add(N)", "order_Add(N)", "order_Add(N)", "order_Add(N)", 
"order_Add(N)", "order_Add(N)", "order_Add(N)", "order_Add(N)", 
"order_Add(N)", "order_Add(N)", "order_Add(N)", "order_Add(N)", 
"order_Add(N)", "order_Add(N)", "order_Add(N)", "order_Add(N)", 
"order_Add(N)", "order_Add(N)", "order_Add(N)", "order_Add(N)", 
"order_Add(N)", "order_Add(N)", "order_cancel(C)", "order_Add(N)", 
"order_cancel(C)", "order_modify(M)", "order_Add(N)", "order_Add(N)", 
"order_Add(N)", "order_Add(N)", "order_Add(N)"), Data.TTP_ID = c("1643859000146019272", 
"1643859000209001245", "1643859000213302022", "1643859000213806654", 
"1643859000335231200", "1643859000375435653", "1643859000552440289", 
"1643859000553529596", "1643859000554549133", "1643859000555603786", 
"1643859000557214534", "1643859000558523595", "1643859000573534884", 
"1643859000574687971", "1643859000601701934", "1643859000753838812", 
"1643859001073721204", "1643859001074809203", "1643859001075969399", 
"1643859001076973559", "1643859001077964078", "1643859001178504498", 
"1643859001196063333", "1643859001228844284", "1643859001258568203", 
"1643859001258589070", "1643859001340555507", "1643859001340576199", 
"1643859001440728578", "1643859001484160654", "1643859002041390016", 
"1643859002211192249", "1643859002266211328", "1643859002267484217", 
"1643859002452887594", "1643859003119711451", "1643859003147616082", 
"1643859003414474262", "1643859004156521050", "1643859004367389876", 
"1643859005085171574", "1643859005239838672", "1643859005964944430", 
"1643859005981067815", "1643859006160674308", "1643859006274501540", 
"1643859006711285711", "1643859007100814506", "1643859007241000276", 
"1643859007684552883", "1643859007811364355", "1643859008445728899", 
"1643859008694292641", "1643859008827221928", "1643859008836801701", 
"1643859010282172323", "1643859010379849722", "1643859010489206456", 
"1643859010719539511", "1643859011634677518", "1643859012609508982", 
"1643859012908104325", "1643859013441999446", "1643859013950047445", 
"1643859014128142413", "1643859014469906133", "1643859015147563211", 
"1643859015163551738", "1643859015387966841", "1643859018206409689", 
"1643859018497935664", "1643859019504780814", "1643859020767431050", 
"1643859022009376617", "1643859022086268622", "1643859022102351430", 
"1643859022480114953", "1643859023586155839", "1643859024594018337", 
"1643859028867142630", "1643859031620433918", "1643859034523761102", 
"1643859037420643794", "1643859039284016489", "1643859039515733850", 
"1643859045910217643", "1643859047795949364", "1643859055700211343", 
"1643859056450059354", "1643859056554194343", "1643859056767138261", 
"1643859000335231200", "1643859061230798066", "1643859001228844284", 
"1643859062961384511", "1643859066472758424", "1643859067402320215", 
"1643859068627240998", "1643859068699725205", "1643859069043437803"
), Data.PTT1 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, "1643859056450059354", NA, NA, NA, NA, NA)), row.names = c(NA, 
100L), class = "data.frame")
0

There are 0 best solutions below