On Jan 25, 2011, at 9:58 PM, eric wrote:
>
> I want to use diff to take the differences in a column "Close" of
a
> data
> frame "y". But I'd like to do it using the transform function
so a
> new data
> frame is created with a difference column. The problem is that diff
> gives
> one less than the number of elements in the original data frame. So
> transform gives an error message. I know the first element of diff
> should be
> NA or ideally 0. But not sure how I get there. Any suggestions ?
>
>
> j
> Date Close
> 1 11/20/1985 156.412
> 2 11/21/1985 155.112
> 3 11/22/1985 154.182
> 4 11/25/1985 154.192
> 5 11/26/1985 153.722
> 6 11/27/1985 153.712
>
> d <-diff(j[,2])
> d
> [1] -1.30 -0.93 0.01 -0.47 -0.01
>
> j <- transform(j, delta=diff(j[,2]))
> j <- transform(j, delta=c(NA, diff(j[,2])))
> j
Date Close delta
1 11/20/1985 156.412 NA
2 11/21/1985 155.112 -1.30
3 11/22/1985 154.182 -0.93
4 11/25/1985 154.192 0.01
5 11/26/1985 153.722 -0.47
6 11/27/1985 153.712 -0.01
>
> Error in data.frame(list(Date = c(5620L, 5639L, 5657L, 5706L, 5721L,
> 5736L :
> arguments imply differing number of rows: 6, 5
> Calls: transform -> transform.data.frame -> do.call -> data.frame
>
> --
> View this message in context:
http://r.789695.n4.nabble.com/Using-diff-and-transform-tp3237397p3237397.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.
David Winsemius, MD
West Hartford, CT