Hi R users,
Is there an easy way in R to generate the results table below using table 1
and the formula (simplified version of the real problem)? It would be easy
if I knew the R equivalent of SAS's retain function, but could not find one.
Thanks in Advance for any help!
table1:
ID X2 X3
1.00 1.00 0
2.00 0.00
3.00 1.00
4.00 3058
5.00 0.00
6.00 6.00
Formula: X3 = x2 + (.24 * x3)
where the values in the x3 column of the result table are retained from
previous x3 rows.. Also the first x3 value is initialized to 0 to start
e.g.
for ID=1 we have 1 + .24(0) = 1.00
for ID=2 we have 0 + .24(1) = 0.24
for ID=3 we have 1 + .24(.24) = 1.06
for ID=4 we have 3058 + .24(1.06) = 3058.25
etc.............
Results:
ID X2 x3
1.00 1.00 1.00
2.00 0.00 0.24
3.00 1.00 1.06
4.00 3058 3058.25
5.00 0.00 733.98
6.00 6.00 182.16
--
View this message in context:
http://www.nabble.com/Formula-that-includes-previous-row-values-tp22170010p22170010.html
Sent from the R help mailing list archive at Nabble.com.
Dear Pele,
Probably not the best way to proceed but it works:
X<-read.table(textConnection("ID X2
1.00 1.00
2.00 0.00
3.00 1.00
4.00 3058
5.00 0.00
6.00 6.00"),header=TRUE)
closeAllConnections()
X
x3<-0
for(i in 2:(nrow(X)+1)) x3<-c(x3, X$X2[i-1]+0.24*x3[i-1])
X$x3<-x3[-1]
X
HTH,
Jorge
On Mon, Feb 23, 2009 at 3:59 PM, Pele <drdionc@yahoo.com> wrote:
>
> Hi R users,
>
> Is there an easy way in R to generate the results table below using table 1
> and the formula (simplified version of the real problem)? It would be easy
> if I knew the R equivalent of SAS's retain function, but could not find
> one.
>
> Thanks in Advance for any help!
>
> table1:
>
> ID X2 X3
> 1.00 1.00 0
> 2.00 0.00
> 3.00 1.00
> 4.00 3058
> 5.00 0.00
> 6.00 6.00
>
> Formula: X3 = x2 + (.24 * x3)
>
> where the values in the x3 column of the result table are retained from
> previous x3 rows.. Also the first x3 value is initialized to 0 to start
>
> e.g.
> for ID=1 we have 1 + .24(0) = 1.00
> for ID=2 we have 0 + .24(1) = 0.24
> for ID=3 we have 1 + .24(.24) = 1.06
> for ID=4 we have 3058 + .24(1.06) = 3058.25
> etc.............
>
> Results:
> ID X2 x3
> 1.00 1.00 1.00
> 2.00 0.00 0.24
> 3.00 1.00 1.06
> 4.00 3058 3058.25
> 5.00 0.00 733.98
> 6.00 6.00 182.16
> --
> View this message in context:
>
http://www.nabble.com/Formula-that-includes-previous-row-values-tp22170010p22170010.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help@r-project.org mailing list
> 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.
>
[[alternative HTML version deleted]]
How about: x3 <- cumsum( x2* 0.24^(5:0) ) / 0.24^(5:0) with the 5 replaced by the length -1 for the more general case. -- Gregory (Greg) L. Snow Ph.D. Statistical Data Center Intermountain Healthcare greg.snow at imail.org 801.408.8111> -----Original Message----- > From: r-help-bounces at r-project.org [mailto:r-help-bounces at r- > project.org] On Behalf Of Pele > Sent: Monday, February 23, 2009 1:59 PM > To: r-help at r-project.org > Subject: [R] Formula that includes previous row values > > > Hi R users, > > Is there an easy way in R to generate the results table below using > table 1 > and the formula (simplified version of the real problem)? It would be > easy > if I knew the R equivalent of SAS's retain function, but could not find > one. > > Thanks in Advance for any help! > > table1: > > ID X2 X3 > 1.00 1.00 0 > 2.00 0.00 > 3.00 1.00 > 4.00 3058 > 5.00 0.00 > 6.00 6.00 > > Formula: X3 = x2 + (.24 * x3) > > where the values in the x3 column of the result table are retained from > previous x3 rows.. Also the first x3 value is initialized to 0 to start > > e.g. > for ID=1 we have 1 + .24(0) = 1.00 > for ID=2 we have 0 + .24(1) = 0.24 > for ID=3 we have 1 + .24(.24) = 1.06 > for ID=4 we have 3058 + .24(1.06) = 3058.25 > etc............. > > Results: > ID X2 x3 > 1.00 1.00 1.00 > 2.00 0.00 0.24 > 3.00 1.00 1.06 > 4.00 3058 3058.25 > 5.00 0.00 733.98 > 6.00 6.00 182.16 > -- > View this message in context: http://www.nabble.com/Formula-that- > includes-previous-row-values-tp22170010p22170010.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help at r-project.org mailing list > 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.
Seemingly Similar Threads
- Slow RAID Check/high %iowait during check after updgrade from CentOS 6.5 -> CentOS 7.2
- How to calculate means for multiple variables in samples with different sizes
- Help With Post-hoc Testing
- Possible bug in foreign library import of Stata datasets
- 10 Node OCFS2 Cluster - Performance