How do I add a new column with 2-days moving average (from r-adamant(https://github.com/TotallyBullshit/radamant)) on IBM prices in a csv-file (ibm.csv) and then save all in a new csv file(ibm2.csv)? Prices Date Open High Low Close Volume Adj Close* Dec 26, 2014 162.27 163.09 162.01 162.34 1,912,200 162.34 Dec 24, 2014 162.88 162.99 161.61 161.82 1,868,100 161.82 Dec 23, 2014 162.23 162.90 161.61 162.24 4,043,300 162.24 Dec 22, 2014 158.33 161.91 158.33 161.44 4,682,500 161.44 Dec 19, 2014 157.49 160.41 157.49 158.51 8,864,900 158.51 [[alternative HTML version deleted]]
could not read the data you posted; try 'dput' next time. If it is just a 2 day moving average, try the 'filter' function:> x <- 1:20 > x[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20> filter(x, c(.5,.5))Time Series: Start = 1 End = 20 Frequency = 1 [1] 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5 10.5 11.5 12.5 13.5 14.5 15.5 16.5 17.5 18.5 19.5 NA>Jim Holtman Data Munger Guru What is the problem that you are trying to solve? Tell me what you want to do, not how you want to do it. On Sun, Dec 28, 2014 at 6:56 AM, Rolf Edberg <rolfe at algonet.se> wrote:> > > How do I add a new column with 2-days moving average (from > r-adamant(https://github.com/TotallyBullshit/radamant)) on IBM prices in a > csv-file (ibm.csv) and then save all in a new csv file(ibm2.csv)? > > > > > Prices > > > > > > Date > > Open > > High > > Low > > Close > > Volume > > Adj Close* > > > Dec 26, 2014 > > 162.27 > > 163.09 > > 162.01 > > 162.34 > > 1,912,200 > > 162.34 > > > Dec 24, 2014 > > 162.88 > > 162.99 > > 161.61 > > 161.82 > > 1,868,100 > > 161.82 > > > Dec 23, 2014 > > 162.23 > > 162.90 > > 161.61 > > 162.24 > > 4,043,300 > > 162.24 > > > Dec 22, 2014 > > 158.33 > > 161.91 > > 158.33 > > 161.44 > > 4,682,500 > > 161.44 > > > Dec 19, 2014 > > 157.49 > > 160.41 > > 157.49 > > 158.51 > > 8,864,900 > > 158.51 > > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at 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. >[[alternative HTML version deleted]]
Try this:> x <- read.csv(text = "Date,Open,High,Low,Close,Volume,Adj Close+ 2014-12-26,162.27,163.09,162.01,162.34,1912200,162.34 + 2014-12-24,162.88,162.99,161.61,161.82,1868100,161.82 + 2014-12-23,162.23,162.90,161.61,162.24,4043300,162.24 + 2014-12-22,158.33,161.91,158.33,161.44,4682500,161.44", as.is = TRUE)> require(lubridate) > x$Date <- ymd(x$Date) # convert to a date field > x <- x[order(x$Date), ] # sort by date > x$two_day <- filter(x$Close, c(0.5, 0.5)) # compute moving average > xDate Open High Low Close Volume Adj.Close two_day 4 2014-12-22 158.33 161.91 158.33 161.44 4682500 161.44 161.84 3 2014-12-23 162.23 162.90 161.61 162.24 4043300 162.24 162.03 2 2014-12-24 162.88 162.99 161.61 161.82 1868100 161.82 162.08 1 2014-12-26 162.27 163.09 162.01 162.34 1912200 162.34 NA Jim Holtman Data Munger Guru What is the problem that you are trying to solve? Tell me what you want to do, not how you want to do it. On Sun, Dec 28, 2014 at 8:31 AM, Rolf Edberg <rolfe at algonet.se> wrote:> Thank you for trying to help!! > > > > I am very new to the R code. So need help with every step. > > > > The goal is to use technical analysis on stock prices. Not only MA but if > I understand the principle with that I hope I can use the other techniques > as well. > > > > I found R-adamant but do not know how to use it. > > > > I downloaded 4 days of IBM prices from yahoo in a csv-file.. > > I don?t know what ?dput? is. > > > > Here is the IBM prices in a text string: > > Date,Open,High,Low,Close,Volume,Adj Close > > 2014-12-26,162.27,163.09,162.01,162.34,1912200,162.34 > > 2014-12-24,162.88,162.99,161.61,161.82,1868100,161.82 > > 2014-12-23,162.23,162.90,161.61,162.24,4043300,162.24 > > 2014-12-22,158.33,161.91,158.33,161.44,4682500,161.44 > > > > I would like the date in sorted with the oldest at the top. > > > > I would like to add a column with the technical indicator, in this case > 2-days MA of Close. > > > > And I would like to have the result in a csv file. I will use the file in > another program. > > > > Thank you !! > > > > Rolf > > > > *From:* jim holtman [mailto:jholtman at gmail.com] > *Sent:* Sunday, December 28, 2014 4:45 PM > *To:* Rolf Edberg > *Cc:* R mailing list > *Subject:* Re: [R] Moving average > > > > could not read the data you posted; try 'dput' next time. > > > > If it is just a 2 day moving average, try the 'filter' function: > > > > > x <- 1:20 > > > x > > [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 > > > filter(x, c(.5,.5)) > > Time Series: > > Start = 1 > > End = 20 > > Frequency = 1 > > [1] 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5 10.5 11.5 12.5 13.5 14.5 > 15.5 16.5 17.5 18.5 19.5 NA > > > > > > > > > Jim Holtman > Data Munger Guru > > What is the problem that you are trying to solve? > Tell me what you want to do, not how you want to do it. > > > > On Sun, Dec 28, 2014 at 6:56 AM, Rolf Edberg <rolfe at algonet.se> wrote: > > > > How do I add a new column with 2-days moving average (from > r-adamant(https://github.com/TotallyBullshit/radamant)) on IBM prices in a > csv-file (ibm.csv) and then save all in a new csv file(ibm2.csv)? > > > > > Prices > > > > > > Date > > Open > > High > > Low > > Close > > Volume > > Adj Close* > > > Dec 26, 2014 > > 162.27 > > 163.09 > > 162.01 > > 162.34 > > 1,912,200 > > 162.34 > > > Dec 24, 2014 > > 162.88 > > 162.99 > > 161.61 > > 161.82 > > 1,868,100 > > 161.82 > > > Dec 23, 2014 > > 162.23 > > 162.90 > > 161.61 > > 162.24 > > 4,043,300 > > 162.24 > > > Dec 22, 2014 > > 158.33 > > 161.91 > > 158.33 > > 161.44 > > 4,682,500 > > 161.44 > > > Dec 19, 2014 > > 157.49 > > 160.41 > > 157.49 > > 158.51 > > 8,864,900 > > 158.51 > > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at 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. > > >[[alternative HTML version deleted]]
On Tue, 30 Dec 2014, jim holtman wrote:> Try this: > >> x <- read.csv(text = "Date,Open,High,Low,Close,Volume,Adj Close > + 2014-12-26,162.27,163.09,162.01,162.34,1912200,162.34 > + 2014-12-24,162.88,162.99,161.61,161.82,1868100,161.82 > + 2014-12-23,162.23,162.90,161.61,162.24,4043300,162.24 > + 2014-12-22,158.33,161.91,158.33,161.44,4682500,161.44", as.is = TRUE) >> require(lubridate) >> x$Date <- ymd(x$Date) # convert to a date field >> x <- x[order(x$Date), ] # sort by date >> x$two_day <- filter(x$Close, c(0.5, 0.5)) # compute moving average >> x > Date Open High Low Close Volume Adj.Close two_day > 4 2014-12-22 158.33 161.91 158.33 161.44 4682500 161.44 161.84 > 3 2014-12-23 162.23 162.90 161.61 162.24 4043300 162.24 162.03 > 2 2014-12-24 162.88 162.99 161.61 161.82 1868100 161.82 162.08 > 1 2014-12-26 162.27 163.09 162.01 162.34 1912200 162.34 NAA canned approach for reading and filtering the data is also available in the "zoo" package. The read.zoo() function can directly create a "zoo" time series object with "Date" time index: R> z <- read.zoo(text = "Date,Open,High,Low,Close,Volume,Adj Close + 2014-12-26,162.27,163.09,162.01,162.34,1912200,162.34 + 2014-12-24,162.88,162.99,161.61,161.82,1868100,161.82 + 2014-12-23,162.23,162.90,161.61,162.24,4043300,162.24 + 2014-12-22,158.33,161.91,158.33,161.44,4682500,161.44", + header = TRUE, sep = ",", format = "%Y-%m-%d") And then rollmean() can compute rolling means for all variables/columns: R> rollmean(z, 2) Open High Low Close Volume Adj.Close 2014-12-22 160.280 162.405 159.97 161.84 4362900 161.84 2014-12-23 162.555 162.945 161.61 162.03 2955700 162.03 2014-12-24 162.575 163.040 161.81 162.08 1890150 162.08 You can additionally supply the fill = NA argument if you want trailing NAs for 2014-12-26.> > Jim Holtman > Data Munger Guru > > What is the problem that you are trying to solve? > Tell me what you want to do, not how you want to do it. > > On Sun, Dec 28, 2014 at 8:31 AM, Rolf Edberg <rolfe at algonet.se> wrote: > >> Thank you for trying to help!! >> >> >> >> I am very new to the R code. So need help with every step. >> >> >> >> The goal is to use technical analysis on stock prices. Not only MA but if >> I understand the principle with that I hope I can use the other techniques >> as well. >> >> >> >> I found R-adamant but do not know how to use it. >> >> >> >> I downloaded 4 days of IBM prices from yahoo in a csv-file.. >> >> I don?t know what ?dput? is. >> >> >> >> Here is the IBM prices in a text string: >> >> Date,Open,High,Low,Close,Volume,Adj Close >> >> 2014-12-26,162.27,163.09,162.01,162.34,1912200,162.34 >> >> 2014-12-24,162.88,162.99,161.61,161.82,1868100,161.82 >> >> 2014-12-23,162.23,162.90,161.61,162.24,4043300,162.24 >> >> 2014-12-22,158.33,161.91,158.33,161.44,4682500,161.44 >> >> >> >> I would like the date in sorted with the oldest at the top. >> >> >> >> I would like to add a column with the technical indicator, in this case >> 2-days MA of Close. >> >> >> >> And I would like to have the result in a csv file. I will use the file in >> another program. >> >> >> >> Thank you !! >> >> >> >> Rolf >> >> >> >> *From:* jim holtman [mailto:jholtman at gmail.com] >> *Sent:* Sunday, December 28, 2014 4:45 PM >> *To:* Rolf Edberg >> *Cc:* R mailing list >> *Subject:* Re: [R] Moving average >> >> >> >> could not read the data you posted; try 'dput' next time. >> >> >> >> If it is just a 2 day moving average, try the 'filter' function: >> >> >> >> > x <- 1:20 >> >> > x >> >> [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 >> >> > filter(x, c(.5,.5)) >> >> Time Series: >> >> Start = 1 >> >> End = 20 >> >> Frequency = 1 >> >> [1] 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5 10.5 11.5 12.5 13.5 14.5 >> 15.5 16.5 17.5 18.5 19.5 NA >> >> > >> >> >> >> >> >> Jim Holtman >> Data Munger Guru >> >> What is the problem that you are trying to solve? >> Tell me what you want to do, not how you want to do it. >> >> >> >> On Sun, Dec 28, 2014 at 6:56 AM, Rolf Edberg <rolfe at algonet.se> wrote: >> >> >> >> How do I add a new column with 2-days moving average (from >> r-adamant(https://github.com/TotallyBullshit/radamant)) on IBM prices in a >> csv-file (ibm.csv) and then save all in a new csv file(ibm2.csv)? >> >> >> >> >> Prices >> >> >> >> >> >> Date >> >> Open >> >> High >> >> Low >> >> Close >> >> Volume >> >> Adj Close* >> >> >> Dec 26, 2014 >> >> 162.27 >> >> 163.09 >> >> 162.01 >> >> 162.34 >> >> 1,912,200 >> >> 162.34 >> >> >> Dec 24, 2014 >> >> 162.88 >> >> 162.99 >> >> 161.61 >> >> 161.82 >> >> 1,868,100 >> >> 161.82 >> >> >> Dec 23, 2014 >> >> 162.23 >> >> 162.90 >> >> 161.61 >> >> 162.24 >> >> 4,043,300 >> >> 162.24 >> >> >> Dec 22, 2014 >> >> 158.33 >> >> 161.91 >> >> 158.33 >> >> 161.44 >> >> 4,682,500 >> >> 161.44 >> >> >> Dec 19, 2014 >> >> 157.49 >> >> 160.41 >> >> 157.49 >> >> 158.51 >> >> 8,864,900 >> >> 158.51 >> >> >> >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help at 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. >> >> >> > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at 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.