Rui-- thanks so much for the help! I'm getting this error though, which is leaving me stumped:
test<-lapply(ids, function(i) { if(!any(is.na(df[df$ID==i,3]))) {adf.test(df[df$ID==i, 3])} else {NA} }) Error in if (interpol == min(tablep)) warning("p-value smaller than printed p-value") else warning("p-value greater than printed p-value") : missing value where TRUE/FALSE needed Any idea what this could mean? On Sun, Jun 23, 2013 at 4:54 PM, Rui Barradas <ruipbarra...@sapo.pt> wrote: > Hello, > > Sorry, I forgot to Cc the list. > > Rui Barradas > > Em 23-06-2013 21:44, Rui Barradas escreveu: > > Hello, >> >> See if the following does what you want. >> >> lapply(seq_len(obsv), function(i) adf.test(df[df$ID == i, 3])) >> >> >> Hope this helps, >> >> Rui Barradas >> >> Em 23-06-2013 19:12, Olga Musayev escreveu: >> >>> Short question: Is it possible to use statistical tests, like the >>> Augmented >>> Dickey-Fuller test, in functions with for-loops? If not, are there any >>> alternative ways to scale measures? >>> >>> Detailed explanation: I am working with time-series, and I want to flag >>> curves that are not stationary and which display pulses, trends, or level >>> shifts. >>> >>> df >>>> >>> >>> DATE ID VALUE2012-03-06 1 5.672012-03-07 1 >>> 3.452012-03-08 1 4.562012-03-09 1 20.302012-03-10 1 >>> 5.102012-03-06 2 5.672012-03-07 2 3.452012-03-08 2 >>> 4.562012-03-09 2 5.282012-03-10 2 5.102012-03-06 3 >>> 5.672012-03-07 3 7.802012-03-08 3 8.792012-03-09 3 >>> 9.432012-03-10 3 10.99 >>> >>> You can see, object 2 is stationary, but 3 exhibits a trend and 1 has a >>> pulse at 3/09. >>> >>> What I want, in pseudo-code: >>> >>> flag<- list() >>> for (i in 1:length(obsv)) { >>> if adf.test(i) FAIL { >>> append(flag, i) >>> }} >>> >>> What I have so far: >>> >>> library(tseries) >>>> adf.test(df[which(df$ID==1), 3]) >>>> >>> Augmented Dickey-Fuller Test >>> >>> data: dataDickey-Fuller = 11.1451, Lag order = 16, p-value = 0.01null >>> hypothesis: non-stationary >>> >>>> adf.test(df[which(df$ID==2), 3]) >>>> >>> Augmented Dickey-Fuller Test >>> >>> data: dataDickey-Fuller = 11.1451, Lag order = 16, p-value = 0.99 >>> alternative hypothesis: stationary >>> >>> adf.test(df[which(df$ID==3), 3])Augmented Dickey-Fuller Test >>>> >>> >>> data: dataDickey-Fuller = 11.1451, Lag order = 16, p-value = 0.04null >>> hypothesis: non-stationary >>> >>> How can I use this output in a for-loop? Thank you in advance! >>> >>> [[alternative HTML version deleted]] >>> >>> ______________________________**________________ >>> R-help@r-project.org mailing list >>> https://stat.ethz.ch/mailman/**listinfo/r-help<https://stat.ethz.ch/mailman/listinfo/r-help> >>> PLEASE do read the posting guide >>> http://www.R-project.org/**posting-guide.html<http://www.R-project.org/posting-guide.html> >>> and provide commented, minimal, self-contained, reproducible code. >>> >>> [[alternative HTML version deleted]] ______________________________________________ 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.