If I have data (below) and need some help in figuring out how I can change the
values of my date column, so that a year will be from September-August? So the
year
1990 = September 89-August 90; 1991
= September 90-August 91, etc...
I was trying to use the if() function, but am unable to figure it out. I
basically need to change the years associated with September-December to the
following year. Any
help would be greatly appreciated. Otherwise I will have to power through
it and do it all manually in excel. I am sorry that I do not have the original
data associated with this posting, nor any R code with it. I really do not have
a clue how to even start designating the new year.
head(mydata)
class(mydata)
"data.frame"
site date precipitation temp_max temp_min
1 Castle Peak January-70 0 32 18
2 Castle Peak January-70 0 39 9
3 Castle Peak January-70 0 34 5
4 Castle Peak January-70 0 30 7
5 Castle Peak January-70 0 40 6
6 Castle Peak January-70 0 45 10
Thank you in advance and please let me know what else I can include to help
solve this issue. this is my first posting on R-help.
Nick Pardikes
PhD Student
Program in Ecology, Evolution and Conservation Biology
University of Nevada, Reno
303-550-1072
http://wolfweb.unr.edu/homepage/npardikes/MySite/Welcome.html
[[alternative HTML version deleted]]
Hi,
Try this:
dat1<-read.table(text="
site,date,precipitation,temp_max,temp_min
Castle Peak,January-70,0,32,18
Castle Peak,January-70,0,39,9
Castle Peak,September-70,0,34,5
Castle Peak,September-70,0,30,7
Castle Peak,October-70,0,40,6
Castle Peak,November-70,0,45,10
Castle Peak,December-70,0,43,8
Castle Peak,October-71,0,42,7
Castle Peak,November-71,0,46,11
Castle Peak,December-71,0,41,9
",sep=",",stringsAsFactors=FALSE,header=TRUE)
Month1<-c("September","October","November","December")
?dat1$date[gsub("(.*)\\-.*","\\1",dat1$date)%in%Month1]<-paste0(gsub("(.*\\-).*","\\1",dat1$date[gsub("(.*)\\-.*","\\1",dat1$date)%in%Month1]),as.numeric(gsub(".*\\-(.*)","\\1",dat1$date[gsub("(.*)\\-.*","\\1",dat1$date)%in%Month1]))+1)
dat1
#????????? site???????? date precipitation temp_max temp_min
#1? Castle Peak?? January-70???????????? 0?????? 32?????? 18
#2? Castle Peak?? January-70???????????? 0?????? 39??????? 9
#3? Castle Peak September-71???????????? 0?????? 34??????? 5
#4? Castle Peak September-71???????????? 0?????? 30??????? 7
#5? Castle Peak?? October-71???????????? 0?????? 40??????? 6
#6? Castle Peak? November-71???????????? 0?????? 45?????? 10
#7? Castle Peak? December-71???????????? 0?????? 43??????? 8
#8? Castle Peak?? October-72???????????? 0?????? 42??????? 7
#9? Castle Peak? November-72???????????? 0?????? 46?????? 11
#10 Castle Peak? December-72???????????? 0?????? 41??????? 9
A.K.
A.K.
----- Original Message -----
From: nick pardikes <npardikes at hotmail.com>
To: "r-help at R-project.org" <r-help at r-project.org>
Cc:
Sent: Saturday, November 24, 2012 4:01 PM
Subject: [R] Designating a new year (Sept-Aug) in R
If I have data (below) and need some help in figuring out how I can change the
values of my date column, so that a year will be from September-August? So the
year
1990 = September 89-August 90; 1991
= September 90-August 91, etc...
I was trying to use the if() function, but am unable to figure it out. I
basically need to change the years associated with September-December to the
following year. Any
help would be greatly appreciated. Otherwise I will have to power through
it and do it all manually in excel. I am sorry that I do not have the original
data associated with this posting, nor any R code with it. I really do not have
a clue how to even start designating the new year.
head(mydata)
class(mydata)
"data.frame"
? ? ? ? site? ? ? ? ? ? date? ? ? ? ? ? ? ? precipitation temp_max temp_min
1 Castle Peak January-70? ? ? ? ? ? 0? ? ? 32? ? ? 18
2 Castle Peak January-70? ? ? ? ? ? 0? ? ? 39? ? ? ? 9
3 Castle Peak January-70? ? ? ? ? ? 0? ? ? 34? ? ? ? 5
4 Castle Peak January-70? ? ? ? ? ? 0? ? ? 30? ? ? ? 7
5 Castle Peak January-70? ? ? ? ? ? 0? ? ? 40? ? ? ? 6
6 Castle Peak January-70? ? ? ? ? ? 0? ? ? 45? ? ? 10
Thank you in advance and please let me know what else I can include to help
solve this issue. this is my first posting on R-help.
Nick Pardikes
PhD Student
Program in Ecology, Evolution and Conservation Biology
University of Nevada, Reno
303-550-1072
http://wolfweb.unr.edu/homepage/npardikes/MySite/Welcome.html
??? ??? ??? ? ??? ??? ?
??? [[alternative HTML version deleted]]
______________________________________________
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.
Hello,
I don't know if this is it, do you want a 4 digit year or month-yy? The
following function returns month-yy.
fun <- function(x, format = "%B-%y"){
fmt <- format
x <- as.Date(paste("01", x, sep = "-"), format =
paste("%d", fmt,
sep = "-"))
m <- as.integer(format(x, "%m"))
y <- as.integer(format(x, "%y"))
y <- ifelse(9 <= m & m <= 12, y + 1, y)
format(as.Date(paste(y, m, 1), "%y %m %d"), fmt)
}
x <- Sys.Date() + 30*(-12:12)
x <- format(x, "%B-%y")
fun(x)
I don't believe it's hard to change to 4 digit year, just change the
return format to "%Y" (last line of code).
Hope this helps,
Rui Barradas
Em 24-11-2012 21:01, nick pardikes escreveu:> If I have data (below) and need some help in figuring out how I can change
the values of my date column, so that a year will be from September-August? So
the year
> 1990 = September 89-August 90; 1991
> = September 90-August 91, etc...
>
> I was trying to use the if() function, but am unable to figure it out. I
basically need to change the years associated with September-December to the
following year. Any
> help would be greatly appreciated. Otherwise I will have to power through
> it and do it all manually in excel. I am sorry that I do not have the
original data associated with this posting, nor any R code with it. I really do
not have a clue how to even start designating the new year.
>
> head(mydata)
> class(mydata)
> "data.frame"
> site date precipitation temp_max
temp_min
> 1 Castle Peak January-70 0 32 18
> 2 Castle Peak January-70 0 39 9
> 3 Castle Peak January-70 0 34 5
> 4 Castle Peak January-70 0 30 7
> 5 Castle Peak January-70 0 40 6
> 6 Castle Peak January-70 0 45 10
>
> Thank you in advance and please let me know what else I can include to help
solve this issue. this is my first posting on R-help.
>
>
>
> Nick Pardikes
> PhD Student
> Program in Ecology, Evolution and Conservation Biology
> University of Nevada, Reno
> 303-550-1072
> http://wolfweb.unr.edu/homepage/npardikes/MySite/Welcome.html
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> 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.
HI,
If you need to order the dates.
dat1<-read.table(text="
site,date,precipitation,temp_max,temp_min
Castle Peak,January-70,0,32,18
Castle Peak,January-70,0,39,9
Castle Peak,September-70,0,34,5
Castle Peak,September-70,0,30,7
Castle Peak,October-70,0,40,6
Castle Peak,November-70,0,45,10
Castle Peak,December-70,0,43,8
Castle Peak,January-71,0,42,6
Castle Peak,February-71,0,38,5
CastlePeak,March-71,0,46,10
Castle Peak,October-71,0,42,7
Castle Peak,November-71,0,46,11
Castle Peak,December-71,0,41,9
",sep=",",stringsAsFactors=FALSE,header=TRUE)
Month1<-c("September","October","November","December")
?dat1$date[gsub("(.*)\\-.*","\\1",dat1$date)%in%Month1]<-paste0(gsub("(.*\\-).*","\\1",dat1$date[gsub("(.*)\\-.*","\\1",dat1$date)%in%Month1]),as.numeric(gsub(".*\\-(.*)","\\1",dat1$date[gsub("(.*)\\-.*","\\1",dat1$date)%in%Month1]))+1)
library(zoo)
dat1$date<-as.Date(as.yearmon(dat1$date,"%B-%y"),format="%b
%Y")
dat2<-dat1[order(dat1$date),]
dat2$date<-as.yearmon(dat2$date,format="%Y-%m-%d")
row.names(dat2)<-1:nrow(dat2)
?dat2
#????????? site???? date precipitation temp_max temp_min
#1? Castle Peak Jan 1970???????????? 0?????? 32?????? 18
#2? Castle Peak Jan 1970???????????? 0?????? 39??????? 9
#3? Castle Peak Jan 1971???????????? 0?????? 42??????? 6
#4? Castle Peak Feb 1971???????????? 0?????? 38??????? 5
#5?? CastlePeak Mar 1971???????????? 0?????? 46?????? 10
#6? Castle Peak Sep 1971???????????? 0?????? 34??????? 5
#7? Castle Peak Sep 1971???????????? 0?????? 30??????? 7
#8? Castle Peak Oct 1971???????????? 0?????? 40??????? 6
#9? Castle Peak Nov 1971???????????? 0?????? 45?????? 10
#10 Castle Peak Dec 1971???????????? 0?????? 43??????? 8
#11 Castle Peak Oct 1972???????????? 0?????? 42??????? 7
#12 Castle Peak Nov 1972???????????? 0?????? 46?????? 11
#13 Castle Peak Dec 1972???????????? 0?????? 41??????? 9
A.K.
----- Original Message -----
From: nick pardikes <npardikes at hotmail.com>
To: "r-help at R-project.org" <r-help at r-project.org>
Cc:
Sent: Saturday, November 24, 2012 4:01 PM
Subject: [R] Designating a new year (Sept-Aug) in R
If I have data (below) and need some help in figuring out how I can change the
values of my date column, so that a year will be from September-August? So the
year
1990 = September 89-August 90; 1991
= September 90-August 91, etc...
I was trying to use the if() function, but am unable to figure it out. I
basically need to change the years associated with September-December to the
following year. Any
help would be greatly appreciated. Otherwise I will have to power through
it and do it all manually in excel. I am sorry that I do not have the original
data associated with this posting, nor any R code with it. I really do not have
a clue how to even start designating the new year.
head(mydata)
class(mydata)
"data.frame"
? ? ? ? site? ? ? ? ? ? date? ? ? ? ? ? ? ? precipitation temp_max temp_min
1 Castle Peak January-70? ? ? ? ? ? 0? ? ? 32? ? ? 18
2 Castle Peak January-70? ? ? ? ? ? 0? ? ? 39? ? ? ? 9
3 Castle Peak January-70? ? ? ? ? ? 0? ? ? 34? ? ? ? 5
4 Castle Peak January-70? ? ? ? ? ? 0? ? ? 30? ? ? ? 7
5 Castle Peak January-70? ? ? ? ? ? 0? ? ? 40? ? ? ? 6
6 Castle Peak January-70? ? ? ? ? ? 0? ? ? 45? ? ? 10
Thank you in advance and please let me know what else I can include to help
solve this issue. this is my first posting on R-help.
Nick Pardikes
PhD Student
Program in Ecology, Evolution and Conservation Biology
University of Nevada, Reno
303-550-1072
http://wolfweb.unr.edu/homepage/npardikes/MySite/Welcome.html
??? ??? ??? ? ??? ??? ?
??? [[alternative HTML version deleted]]
______________________________________________
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.