[R] mean of each month in data

arun smartpink111 at yahoo.com
Mon Dec 17 18:32:54 CET 2012


HI,

May be this helps:
dat1<-read.table("Eliza.txt",sep="",header=TRUE,stringsAsFactors=FALSE)
library(reshape2)
 res<-lapply(split(dat1,dat1$st.),function(x) dcast(x,month~year,mean,value.var="population_in_million"))
res
$Sa
#   month     1955 1956     1957 1958
#1      1 2.400000  NaN      NaN  NaN
#2      2 2.400000  NaN      NaN  NaN
#3      3 2.266667  NaN      NaN  NaN
#4      4      NaN  2.4      NaN  NaN
#5      5      NaN  2.4      NaN  NaN
#6      6      NaN  2.4      NaN  NaN
#7      7      NaN  NaN 2.400000  NaN
#8      8      NaN  NaN 2.400000  NaN
#9      9      NaN  NaN 2.266667  NaN
#10    10      NaN  NaN 2.400000  2.4
#11    11      NaN  NaN      NaN  2.4
#12    12      NaN  NaN      NaN  2.4

#$Ta
 # month     1966 1967     1968 1969
#1     1 2.400000  2.4 2.400000  2.4
#2     2 2.400000  2.4 2.400000  2.4
#3     3 2.266667  2.4 2.266667  2.4
A.K.




----- Original Message -----
From: eliza botto <eliza_botto at hotmail.com>
To: "r-help at r-project.org" <r-help at r-project.org>
Cc: 
Sent: Monday, December 17, 2012 12:11 PM
Subject: [R] mean of each month in data


Dear R users,
[in case the format of email is changed or you dont finf it easy to understand, i have attached a text file of my question]
i have the data in the following format and i want to convert it in the 
format given at the end.
Ta ans Sa are the names of certain cities. there are 69 cities in my 
data.
column 1 is representing station name (i am writing the data of only 
two cities for simplicity but actually, as i wrote, i have 69 cities 
and the actuall table runs down very deep.) 
Column 2 represnts the year for which the data is given (Actuall data 
for each station is of different length but atleast of 24 years).
Column 3 and 4 reprent the month and the day of the data. obviously 
each year has 12 months and each month as different number of days, but 
to make table easily understable only 3 months and 3 days of each month 
are considered. febrary for leap years should also be considered.
col5 represents population of that city

st. year month day population in million
Ta 1966 1 1  2.4
Ta 1966 1 2  2.4
Ta 1966 1 3  2.4
Ta 1966 2 1  2.4
Ta 1966 2 2  2.4
Ta 1966 2 3  2.4
Ta 1966 3 1  2.3
Ta 1966 3 2  2.2
Ta 1966 3 3  2.3 
Ta 1967 1 1  2.4
Ta 1967 1 2  2.4
Ta 1967 1 3  2.4
Ta 1967 2 1  2.4
Ta 1967 2 2  2.4
Ta 1967 2 3  2.4
Ta 1967 3 1  2.4
Ta 1967 3 2  2.4
Ta 1967 3 3  2.4
Ta 1968 1 1  2.4
Ta 1968 1 2  2.4
Ta 1968 1 3  2.4
Ta 1968 2 1  2.4
Ta 1968 2 2  2.4
Ta 1968 2 3  2.4
Ta 1968 3 1  2.3
Ta 1968 3 2  2.2
Ta 1968 3 3  2.3 
Ta 1969 1 1  2.4
Ta 1969 1 2  2.4
Ta 1969 1 3  2.4
Ta 1969 2 1  2.4
Ta 1969 2 2  2.4
Ta 1969 2 3  2.4
Ta 1969 3 1  2.4
Ta 1969 3 2  2.4
Ta 1969 3 3  2.4
Sa 1955 1 1  2.4
Sa 1955 1 2  2.4
Sa 1955 1 3  2.4
Sa 1955 2 1  2.4
Sa 1955 2 2  2.4
Sa 1955 2 3  2.4
Sa 1955 3 1  2.3
Sa 1955 3 2  2.2
Sa 1955 3 3  2.3 
Sa 1956 4 1  2.4
Sa 1956 4 2  2.4
Sa 1956 4 3  2.4
Sa 1956 5 1  2.4
Sa 1956 5 2  2.4
Sa 1956 5 3  2.4
Sa 1956 6 1  2.4
Sa 1956 6 2  2.4
Sa 1956 6 3  2.4
Sa 1957 7 1  2.4
Sa 1957 7 2  2.4
Sa 1957 7 3  2.4
Sa 1957 8 1  2.4
Sa 1957 8 2  2.4
Sa 1957 8 3  2.4
Sa 1957 9 1  2.3
Sa 1957 9 2  2.2
Sa 1957 9 3  2.3 
Sa 1957 10 1  2.4
Sa 1958 10 2  2.4
Sa 1958 10 3  2.4
Sa 1958 11 1  2.4
Sa 1958 11 2  2.4
Sa 1958 11 3  2.4
Sa 1958 12 1  2.4
Sa 1958 12 2  2.4
Sa 1958 12 3  2.4
...
...
uptill 69th station

i want to convert the data in following format
>Ta ## matrix for station Ta
1966   1967   1968   1969
AVERAGE OF MONTH 1 AVERAGE OF MONTH 1 AVERAGE OF MONTH 1 AVERAGE OF MONTH 1
AVERAGE OF MONTH 2 AVERAGE OF MONTH 2 AVERAGE OF MONTH 2 AVERAGE OF MONTH 2
AVERAGE OF MONTH 3 AVERAGE OF MONTH 3 AVERAGE OF MONTH 3 AVERAGE OF MONTH 3
........
........
AVERAGE OF MONTH 12 AVERAGE OF MONTH 12 AVERAGE OF MONTH 12 AVERAGE OF MONTH 12
similar operation are to be done for "Sa" and the remaining 67 
stations...
which means i want to have 69 matrices, in which each column (number of 
columns should be equal to number of years of data)  should contain 12 
mean monthly values of population of each year. 

thanks in advance

eliza                           
______________________________________________
R-help at 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.





More information about the R-help mailing list