Hi, I have probably basic question, but I would be happy if somebody could help me with this:
I have a dataframe where I want to assign a value to other column copying the value in previous row under some condition. Here is an example (dput on the end of message): > test[278:290,] datetime state state_bef state_new 279 2011-11-12 08:24:57 a 0 a 280 2011-11-12 08:31:42 b a b 281 2011-11-13 00:00:00 0 b b 282 2011-11-14 00:00:00 0 0 b 283 2011-11-15 00:00:00 0 0 0 284 2011-11-16 00:00:00 0 0 0 285 2011-11-17 00:00:00 0 0 0 286 2011-11-18 00:00:00 0 0 0 287 2011-11-19 00:00:00 0 0 0 288 2011-11-19 06:13:18 a 0 a 289 2011-11-19 06:40:06 b a b 290 2011-11-19 08:56:54 a b a 291 2011-11-19 09:19:39 b a b What I need is: if state != "0", the state_new==state if state == "0" & state_bef!="0", the state_new==state_bef if state == "0" & state_bef=="0", the state_new==state_bef of the previous row. The idea is when there is "00:00:00" in datetime, I need to repeat the last "state" value in the "state_new" I have tried various ifelse conditions and loops, the last is this, which doesn't work for all rows: test$state_new[test$state!="0"] <- test$state[test$state!="0"] test$state_new[test$state=="0" & test$state_bef!="0"] <- test$state_bef[test$state=="0" & test$state_bef!="0"] test$state_new[test$state=="0" & test$state_bef=="0"] <- test$state_new[test$state=="0" & test$state_bef=="0"] # doesn't work for all rows... This should be the result datetime state state_bef state_new 279 2011-11-12 08:24:57 a 0 a 280 2011-11-12 08:31:42 b a b 281 2011-11-13 00:00:00 0 b b 282 2011-11-14 00:00:00 0 0 b 283 2011-11-15 00:00:00 0 0 b 284 2011-11-16 00:00:00 0 0 b 285 2011-11-17 00:00:00 0 0 b 286 2011-11-18 00:00:00 0 0 b 287 2011-11-19 00:00:00 0 0 b 288 2011-11-19 06:13:18 a 0 a 289 2011-11-19 06:40:06 b a b 290 2011-11-19 08:56:54 a b a 291 2011-11-19 09:19:39 b a b In the dataframe I send as an example there is just one block of this repeated "0" values, but within real dataframe there are more blocks like that. Thanks for any ideas! Best regards, Zuzana > dput(test) structure(list(datetime = structure(c(1320264600, 1320265473, 1320266409, 1320266418, 1320266460, 1320267591, 1320268350, 1320268371, 1320276948, 1320277332, 1320278400, 1320280380, 1320283950, 1320283977, 1320286293, 1320287010, 1320287022, 1320287055, 1320287604, 1320288678, 1320295476, 1320296490, 1320296766, 1320300015, 1320319140, 1320320367, 1320331629, 1320333789, 1320354315, 1320355689, 1320360000, 1320364800, 1320366489, 1320378507, 1320378702, 1320393177, 1320394809, 1320412825, 1320413140, 1320417361, 1320418849, 1320418855, 1320419854, 1320419860, 1320420244, 1320420268, 1320420277, 1320451200, 1320452443, 1320455566, 1320455716, 1320455839, 1320455845, 1320455851, 1320455896, 1320456094, 1320456109, 1320457492, 1320458053, 1320460879, 1320465739, 1320465748, 1320466018, 1320469426, 1320469468, 1320475630, 1320476410, 1320482851, 1320489187, 1320490969, 1320495052, 1320495061, 1320519571, 1320519580, 1320519610, 1320520594, 1320520600, 1320520618, 1320520624, 1320520636, 1320526588, 1320527017, 1320537600, 1320554581, 1320554911, 1320554926, 1320554941, 1320571210, 1320573523, 1320608509, 1320609532, 1320611587, 1320616504, 1320616513, 1320616768, 1320618364, 1320620602, 1320620833, 1320622147, 1320623194, 1320624000, 1320632149, 1320632164, 1320632446, 1320646327, 1320646810, 1320663212, 1320663716, 1320665483, 1320665870, 1320666332, 1320666665, 1320666680, 1320666689, 1320666899, 1320666968, 1320668141, 1320668147, 1320669017, 1320669545, 1320670070, 1320670076, 1320670118, 1320670130, 1320670154, 1320670166, 1320670175, 1320670181, 1320670232, 1320670244, 1320670262, 1320670700, 1320671432, 1320671891, 1320672518, 1320673208, 1320673478, 1320673484, 1320673556, 1320673628, 1320673706, 1320673739, 1320673751, 1320673769, 1320673775, 1320673799, 1320673817, 1320673835, 1320673853, 1320674531, 1320675434, 1320675968, 1320676139, 1320676154, 1320676592, 1320677327, 1320677822, 1320678038, 1320678047, 1320678179, 1320678185, 1320678533, 1320679199, 1320679535, 1320679718, 1320682901, 1320683333, 1320684239, 1320684248, 1320684362, 1320685019, 1320685346, 1320685718, 1320686645, 1320710400, 1320711704, 1320712352, 1320721790, 1320722021, 1320722066, 1320722237, 1320730745, 1320730766, 1320730784, 1320730886, 1320730892, 1320730904, 1320730955, 1320731075, 1320731120, 1320731126, 1320731132, 1320731165, 1320731192, 1320731237, 1320731243, 1320731285, 1320731297, 1320731426, 1320731456, 1320731828, 1320731843, 1320731855, 1320731894, 1320731909, 1320731936, 1320731942, 1320731948, 1320732959, 1320739526, 1320739553, 1320747848, 1320747962, 1320752759, 1320757286, 1320774035, 1320774077, 1320780272, 1320781529, 1320796800, 1320809246, 1320809390, 1320809468, 1320809621, 1320809663, 1320811136, 1320811145, 1320812081, 1320812087, 1320812102, 1320812108, 1320812159, 1320812165, 1320812207, 1320812225, 1320812243, 1320812273, 1320812294, 1320812312, 1320812327, 1320812387, 1320812396, 1320812432, 1320812438, 1320873179, 1320879218, 1320881798, 1320883200, 1320883433, 1320886658, 1320889946, 1320893282, 1320893447, 1320904325, 1320905744, 1320943689, 1320944409, 1320948294, 1320948366, 1320949248, 1320949866, 1320950628, 1320952290, 1320953097, 1320954528, 1320954543, 1320954549, 1320958215, 1320961533, 1320969600, 1320972552, 1320973902, 1320974547, 1320974931, 1320985044, 1320985257, 1321056000, 1321086297, 1321086702, 1321142400, 1321228800, 1321315200, 1321401600, 1321488000, 1321574400, 1321660800, 1321683198, 1321684806, 1321693014, 1321694379 ), class = c("POSIXct", "POSIXt"), tzone = "GMT"), state = c("b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "0", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "0", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "0", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "0", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "0", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "0", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "0", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "0", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "0", "a", "b", "a", "b", "a", "b", "0", "a", "b", "0", "0", "0", "0", "0", "0", "0", "a", "b", "a", "b"), state_bef = c("0", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "0", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "0", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "0", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "0", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "0", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "0", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "0", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "0", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "0", "a", "b", "a", "b", "a", "b", "0", "a", "b", "0", "0", "0", "0", "0", "0", "0", "a", "b", "a"), state_new = c("b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "b", "a", "b", "a", "b", "a", "b", "b", "a", "b", "b", "b", "0", "0", "0", "0", "0", "a", "b", "a", "b")), .Names = c("datetime", "state", "state_bef", "state_new"), row.names = 2:291, class = "data.frame") <zuzanazajk...@ub.edu> [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.