On 30/05/17 19:02, Vijaya Kumar Regati wrote:
Hi,

I am new to R programming, I am trying to work on below requirement. But could 
not achieve desired result.
Appreciate if someone can help me on this :

test dataframe :
   Day1.balc Day2.balc Day3.balc Day4.balc
x       100        20        30        40
y       100        10        10        10
class(test)
[1] "data.frame"

My Goal is to accomplish :
Day2.balc <- Day2.balc + Day1.balc
Day3.balc <- Day3.balc + Day2.balc
.
.
.
Day30.balc <- Day30.balc + Day29.balc

     # Testing for first 4 days
     for (i in 1:4 ) {
     test$Day[i].balc <- test$Day[i].balc + test$Day[i-1].balc
     }

I identified the line I have written inside the loop is not the correct one, 
can someone help me how I can use iteration value(i), for every iteration, as a 
basis for changing field names since field consists of 1,2,3... for each 
different day( Day1.balc Day2.balc Day3.balc Day4.balc etc.,).

(1) Learn some R (read "An Introduction to R" from the R web page; manuals). Don't use iteration when you don't need to; i.e. use vectorised operations whenever possible. (Much faster and clearer.)

(2) Distinguish between data frames and matrices; they are *NOT* the same thing! What you need here are matrices.

(3) I think this will work for you:

    M <- as.matrix(test)
    Mnew <- cbind(0,M[,-ncol(M)]) + M

cheers,

Rolf Turner

--
Technical Editor ANZJS
Department of Statistics
University of Auckland
Phone: +64-9-373-7599 ext. 88276

______________________________________________
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.

Reply via email to