Challenge extracting months
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 <starskykwesi at 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 <drjimlemon at 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
<starskykwesi at 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.quagraine at ucc.edu.gh|kwesi.quagraine at teog.de| Mobile: +233266173582 Skype: quagraine_cwasi Twitter: @Pkdilly
______________________________________________ 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.
-- 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.quagraine at ucc.edu.gh|kwesi.quagraine at teog.de| Mobile: +233266173582 Skype: quagraine_cwasi Twitter: @Pkdilly