Dear R users:> s4 <- seq(length=10, from=1, by=5) > s<-data.frame(s4,s4,s4)I would like to do some modification to s. And I want the form like the following,if it is possible, how should I do? The last column is the sum of previous three column. s4 s4.1 s4.2 sum 1 1 1 2 6 6 3 11 1 12 4 16 6 22 5 21 11 1 33 6 26 16 6 48 7 31 21 11 63 8 36 26 16 78 9 41 31 21 93 10 46 36 26 108 Thanks for any help !!
Here is one way. You can change depending on what you want the offsets to be:> s4 <- seq(length=10, from=1, by=5) > s4[1] 1 6 11 16 21 26 31 36 41 46> f.x <- function(vec, n) c(rep(0,n), vec)[1:length(vec)] > f.x(s4,2)[1] 0 0 1 6 11 16 21 26 31 36> df <- data.frame(s4=s4, s4.1=f.x(s4,2), s4.2=f.x(s4,4)) > dfs4 s4.1 s4.2 1 1 0 0 2 6 0 0 3 11 1 0 4 16 6 0 5 21 11 1 6 26 16 6 7 31 21 11 8 36 26 16 9 41 31 21 10 46 36 26> df$sum <- rowSums(df) > dfs4 s4.1 s4.2 sum 1 1 0 0 1 2 6 0 0 6 3 11 1 0 12 4 16 6 0 22 5 21 11 1 33 6 26 16 6 48 7 31 21 11 63 8 36 26 16 78 9 41 31 21 93 10 46 36 26 108>On 12/22/05, Rhett Eckstein <glaxowell@gmail.com> wrote:> > Dear R users: > > > s4 <- seq(length=10, from=1, by=5) > > s<-data.frame(s4,s4,s4) > I would like to do some modification to s. > And I want the form like the following,if it is possible, how should I do? > The last column is the sum of previous three column. > s4 s4.1 s4.2 sum > 1 1 1 > 2 6 6 > 3 11 1 12 > 4 16 6 22 > 5 21 11 1 33 > 6 26 16 6 48 > 7 31 21 11 63 > 8 36 26 16 78 > 9 41 31 21 93 > 10 46 36 26 108 > > > Thanks for any help !! > > ______________________________________________ > R-help@stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html >-- Jim Holtman Cincinnati, OH +1 513 247 0281 What the problem you are trying to solve? [[alternative HTML version deleted]]
On 12/22/05 9:11 AM, "Rhett Eckstein" <glaxowell at gmail.com> wrote:> Dear R users: > >> s4 <- seq(length=10, from=1, by=5) >> s<-data.frame(s4,s4,s4) > I would like to do some modification to s. > And I want the form like the following,if it is possible, how should I do? > The last column is the sum of previous three column. > s4 s4.1 s4.2 sum > 1 1 1 > 2 6 6 > 3 11 1 12 > 4 16 6 22 > 5 21 11 1 33 > 6 26 16 6 48 > 7 31 21 11 63 > 8 36 26 16 78 > 9 41 31 21 93 > 10 46 36 26 108Rhett, You might want to look at ?embed. It would need some modification, but you can hopefully get the idea. embed(s4,3) Sean
R-help@stat.math.ethz.ch Rhett Eckstein <glaxowell@gmail.com> a ä¾€crit : Dear R users:> s4 <- seq(length=10, from=1, by=5) > s<-data.frame(s4,s4,s4)I would like to do some modification to s. And I want the form like the following,if it is possible, how should I do? The last column is the sum of previous three column. s4 s4.1 s4.2 sum 1 1 1 2 6 6 3 11 1 12 4 16 6 22 5 21 11 1 33 6 26 16 6 48 7 31 21 11 63 8 36 26 16 78 9 41 31 21 93 10 46 36 26 108 Thanks for any help !! see about NA/na/... in s4.2 do something like s4.2[1:2]<-NA ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html --------------------------------- [[alternative HTML version deleted]]