[R] Challenge extracting months

Jim Lemon drjimlemon at gmail.com
Tue Jan 31 04:23:29 CET 2017


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 <drjimlemon at 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 <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
>>



More information about the R-help mailing list