Hello Jim, Hello everyone, does anyone know why this is happening? Any suggestions what might be causing it? I will be grateful for any help.
Kwesi On Wed, Feb 1, 2017 at 1:12 AM, Jim Lemon <drjimle...@gmail.com> wrote: > Hi Kwesi, > I worked through your code below, and I think that when you have the > two variables "mon.t1" and "seas.t1" you can select a "rolling > quarter" like this: > > # the file name in your example is different from the one you sent > era<-read.table(file="SAfr_700hpa_7x5II.txt",header=FALSE,sep=" ", > skip=1,dec = ".") > era.nodes<-paste(era[,1],era[,2],sep=".") > era.nodes<-as.numeric(era.nodes) > era.nodes.days<-zooreg(era.nodes,start=as.Date("1980-01-01"), > end=as.Date("2016-12-31")) > era.nodes.days.t1<-window(era.nodes.days,start=as.Date("1980-01-01"), > end=as.Date("2016-12-31")) > mon.t1<-as.numeric(format(index(era.nodes.days.t1),"%m")) > addyear<-0 > # this loop transforms mon.t1 into an increasing sequence of months > for(i in 2:length(mon.t1)) { > if(seas.t1[i] > seas.t1[i-1]) addyear<-addyear+12 > mon.t1[i]<-mon.t1[i] + addyear > } > for(i in 1:(max(mon.t1)-2)) { > # this gives a logical index for the rolling quarter > rq<-mon.t1 %in% i:(i+2) > } > > Each successive "rq" produced by the last loop can be used to extract > whatever values you want from "era" or "era.nodes". > > Jim > > > On Tue, Jan 31, 2017 at 9:04 PM, Kwesi Quagraine <starskykw...@gmail.com> > wrote: > > Hello Jim, thanks for the code. But I come to you once again, I am not > > looking to do a rolling mean, but to select JFM,FMA,MAM etc from the data > > attached. Below is my sample code which actually selects these months. I > > will rather be glad if I can have a function that does the selection for > all > > these 3 months selected for each year as shown in my last two lines of > code; > > Taking into accounts years with 29 days in February etc. > > > > rm(list = ls()) > > library(zoo) > > library(PCICt) > > library(lattice) > > library(RColorBrewer) > > > > setwd('/home/kwesi/Documents/700hpa/soms/') > > # Reading the data > > > > era <- read.table(file="SAfr_700hpa_5x4II.txt",header = FALSE, > sep = > > "",skip=1,dec = ".") > > era.nodes <- paste(era[,1],era[,2],sep=".") > > > > era.nodes <-as.numeric(era.nodes) > > era.nodes.days<-zooreg(era.nodes,start=as.Date("1980-01- > 01"),end=as.Date("2016-12-31")) > > > > era.nodes.days.t1<-window(era.nodes.days,start=as.Date(" > 1980-01-01"),end=as.Date("2016-12-31")) > > > > mon.t1<-as.numeric(format(index(era.nodes.days.t1),"%m")) > > seas.t1 <-as.numeric(format(index(era.nodes.days.t1),"%Y")) > > era.nodes.days.t1<-cbind(era.nodes.days.t1,mon.t1,seas.t1) > > era.nodes.days.t1 > > jfm80<-era.nodes.days.t1[1:91,1:3[era.nodes.days.t1[1:91,2]= > =1|era.nodes.days.t1[1:91,2]==2|era.nodes.days.t1[1:91,2]==3] > > fma80<-era.nodes.days.t1[32:(91+30),1:3 > > [era.nodes.days.t1[1:91,2]==2|era.nodes.days.t1[1:91,2]==3| > era.nodes.days.t1[1:91,2]==4] > > > > On Tue, Jan 31, 2017 at 5:23 AM, Jim Lemon <drjimle...@gmail.com> wrote: > >> > >> Hi Kwesi, > >> A mistake in the last email. Don't try to replace the column in > >> era.sta as the result will be a different length. Try this: > >> > >> newera.sta2<-collapse.values(era.sta[,2],3) > >> > >> Jim > >> > >> On Tue, Jan 31, 2017 at 10:32 AM, Jim Lemon <drjimle...@gmail.com> > wrote: > >> > Hi Kwesi, > >> > The function collapse_values will only work on a vector of numbers > >> > with FUN="mean". era.sta looks like a data frame with at least two > >> > elements. As the second of these elements seems to be numeric, perhaps > >> > this will work: > >> > > >> > era.sta[,2]<-collapse.values(era.sta[,2],3) > >> > > >> > Don't try to apply the names to era.sta, that was just something to > >> > make the example easier to understand. If you want to collapse more > >> > than one column of era.sta do each one at a time and assign them to a > >> > new data frame. In particular, if era[,1] is a vector of month names, > >> > you will have to create a new vector of quarter (three month) names. > >> > If there are very many of these, the collapse_values function can be > >> > modified to do it automatically. > >> > > >> > Jim > >> > > >> > > >> > > >> > On Tue, Jan 31, 2017 at 9:50 AM, Kwesi Quagraine > >> > <starskykw...@gmail.com> wrote: > >> >> Hello Jim,this is my script now; I am having this error when I called > >> >> the > >> >> function;" In mean.default(list(era...1. = 1:444, Node_freq = > >> >> c(-0.389855332400718, : argument is not numeric or logical: > returning > >> >> NA" > >> >> Any help will be much appreciated. > >> >> > >> >> Kwesi > >> >> > >> >> rm(list = ls()) > >> >> setwd('/home/kwesi/Documents/700hpa/soms/') > >> >> # Reading the data > >> >> > >> >> era <- read.csv(file="som_freq.csv",header = TRUE, sep = > ",",dec > >> >> = > >> >> ".") > >> >> era.scaled <- scale(era[,2:3], center = TRUE, scale = TRUE) > >> >> era.sta<-data.frame(era[,1],era.scaled) > >> >> era.sta > >> >> > >> >> collapse_values<-function(x,span,FUN="mean",na.rm=FALSE) { > >> >> jump<-span-1 > >> >> newx<-rep(NA,length(x)-jump) > >> >> for(i in 1:length(newx)) > >> >> newx[i]<-do.call(FUN,list(x[i:(i+jump)],na.rm=na.rm)) > >> >> return(newx) > >> >> } > >> >> > >> >> #test<-1:12 > >> >> names(era.sta)<-month.abb > >> >> collapse_values(era.sta,3) > >> >> era.sta > >> >> > >> >> > >> >> On Mon, Jan 30, 2017 at 11:53 PM, Jim Lemon <drjimle...@gmail.com> > >> >> wrote: > >> >>> > >> >>> Hi Kwesi, > >> >>> Even without the data, it seems clear that you want something like a > >> >>> rolling mean. Here is a simple function that will apply a function > >> >>> like "mean" to successive bits of a vector of numbers: > >> >>> > >> >>> collapse_values<-function(x,span,FUN="mean",na.rm=FALSE) { > >> >>> jump<-span-1 > >> >>> newx<-rep(NA,length(x)-jump) > >> >>> for(i in 1:length(newx)) > >> >>> newx[i]<-do.call(FUN,list(x[i:(i+jump)],na.rm=na.rm)) > >> >>> return(newx) > >> >>> } > >> >>> > >> >>> test<-1:12 > >> >>> names(test)<-month.abb > >> >>> test > >> >>> collapse_values(test,3) > >> >>> [1] 2 3 4 5 6 7 8 9 10 11 > >> >>> > >> >>> Jim > >> >>> > >> >>> > >> >>> > >> >>> On Mon, Jan 30, 2017 at 11:53 PM, Kwesi Quagraine > >> >>> <starskykw...@gmail.com> wrote: > >> >>> > Hello, I have a data with two variables nodes and index, I want to > >> >>> > extract > >> >>> > 3 months seasons, with a shift of 1 month, that is, DJF, JFM, FMA > >> >>> > etc to > >> >>> > OND. Was wondering how to go about it. Kindly find attached the > data > >> >>> > as > >> >>> > csv. > >> >>> > Any help will be appreciated. > >> >>> > > >> >>> > Regards, > >> >>> > Kwesi > >> >>> > > >> >>> > -- > >> >>> > Try not to become a man of success but rather a man of > value-Albert > >> >>> > Einstein > >> >>> > > >> >>> > University of Cape Coast|College of Agriculture and Natural > >> >>> > Sciences|Department > >> >>> > of Physics| > >> >>> > Team Leader|Recycle Up! Ghana|Technology Without Borders| > >> >>> > Other emails: kwesi.quagra...@ucc.edu.gh|kwesi.quagra...@teog.de| > >> >>> > Mobile: +233266173582 > >> >>> > Skype: quagraine_cwasi > >> >>> > Twitter: @Pkdilly > >> >>> > ______________________________________________ > >> >>> > R-help@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. > >> >> > >> >> > >> >> > >> >> > >> >> -- > >> >> Try not to become a man of success but rather a man of value-Albert > >> >> Einstein > >> >> > >> >> University of Cape Coast|College of Agriculture and Natural > >> >> Sciences|Department of Physics| > >> >> Team Leader|Recycle Up! Ghana|Technology Without Borders| > >> >> Other emails: kwesi.quagra...@ucc.edu.gh|kwesi.quagra...@teog.de| > >> >> Mobile: +233266173582 > >> >> Skype: quagraine_cwasi > >> >> Twitter: @Pkdilly > >> >> > > > > > > > > > > -- > > Try not to become a man of success but rather a man of value-Albert > Einstein > > > > University of Cape Coast|College of Agriculture and Natural > > Sciences|Department of Physics| > > Team Leader|Recycle Up! Ghana|Technology Without Borders| > > Other emails: kwesi.quagra...@ucc.edu.gh|kwesi.quagra...@teog.de| > > Mobile: +233266173582 > > Skype: quagraine_cwasi > > Twitter: @Pkdilly > > > -- Try not to become a man of success but rather a man of value-Albert Einstein University of Cape Coast|College of Agriculture and Natural Sciences|Department of Physics| Team Leader|Recycle Up! Ghana|Technology Without Borders| Other emails: kwesi.quagra...@ucc.edu.gh|kwesi.quagra...@teog.de| Mobile: +233266173582 Skype: quagraine_cwasi Twitter: @Pkdilly
freq_nodes_per_year.eps
Description: PostScript document
______________________________________________ R-help@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.