Dear R-users,
I am trying to get the plyr syntax right, without much success.
Given:
d<- data.frame(cbind(x=1,y=seq(20100801,20100830,1)))
names(d)<-c("first", "daterep")
d2<-d
# I can convert the daterep column in place the classic way:
d$daterep<-as.Date(strptime(d$daterep, format="%Y%m%d"))
# How to do it the plyr way?
ddply(d2, c("daterep"), function(df){as.Date(df, format="%Y%m%d")})
# returns: Error in as.Date.default(df, format = "%Y%m%d") :
# do not know how to convert 'df' to class "Date"
Thanks for any hints,
---jean
--
View this message in context: http://r.789695.n4.nabble.com/ddply-how-to-transform-df-column-in-place-tp3764037p3764037.html
Sent from the R help mailing list archive at Nabble.com.
ddply - how to transform df column "in place"
5 messages · jjap, Ista Zahn, Justin Haynes +1 more
Hi Jean,
On Tue, Aug 23, 2011 at 6:16 PM, jjap <jean.plamondon at fpinnovations.ca> wrote:
Dear R-users,
I am trying to get the plyr syntax right, without much success.
Given:
d<- data.frame(cbind(x=1,y=seq(20100801,20100830,1)))
names(d)<-c("first", "daterep")
d2<-d
# I can convert the daterep column in place the classic way:
d$daterep<-as.Date(strptime(d$daterep, format="%Y%m%d"))
# How to do it the plyr way?
ddply(d2, c("daterep"), function(df){as.Date(df, format="%Y%m%d")})
# returns: Error in as.Date.default(df, format = "%Y%m%d") :
# ? do not know how to convert 'df' to class "Date"
There is no "plyr way" to do this, as this is not the kind of operation plyr is designed to carry out. plyr is designed to simplify the process of 1) splitting the data into groups, 2) operating on each group, and 3) putting the results back together. Since your example does not involve this kind of split-apply-combine approach plyr will not help you. HTH, Ista
Thanks for any hints, ---jean -- View this message in context: http://r.789695.n4.nabble.com/ddply-how-to-transform-df-column-in-place-tp3764037p3764037.html Sent from the R help mailing list archive at Nabble.com.
______________________________________________ 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.
Ista Zahn Graduate student University of Rochester Department of Clinical and Social Psychology http://yourpsyche.org
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20110823/929f3ab2/attachment.pl>
On Aug 23, 2011, at 6:16 PM, jjap wrote:
Dear R-users,
I am trying to get the plyr syntax right, without much success.
Given:
d<- data.frame(cbind(x=1,y=seq(20100801,20100830,1)))
names(d)<-c("first", "daterep")
d2<-d
# I can convert the daterep column in place the classic way:
d$daterep<-as.Date(strptime(d$daterep, format="%Y%m%d"))
# How to do it the plyr way?
ddply(d2, c("daterep"), function(df){as.Date(df, format="%Y%m%d")})
# returns: Error in as.Date.default(df, format = "%Y%m%d") :
# do not know how to convert 'df' to class "Date"
I'm pretty sure that when you do that you are sending dataframes to
'x' that have been split apart on the basis of their daterep values.
Why should there be a "plyr way" of converting types when there is no
splitting of dataframes needed?
If you wanted nevertheless to do it the "plyr way":
d2 <- ddply(d, NULL , transform,
daterep = as.Date(strptime(d$daterep, format="%Y%m%d"))
David Winsemius, MD West Hartford, CT
On Aug 23, 2011, at 6:38 PM, David Winsemius wrote:
On Aug 23, 2011, at 6:16 PM, jjap wrote:
Dear R-users,
I am trying to get the plyr syntax right, without much success.
Given:
d<- data.frame(cbind(x=1,y=seq(20100801,20100830,1)))
names(d)<-c("first", "daterep")
d2<-d
# I can convert the daterep column in place the classic way:
d$daterep<-as.Date(strptime(d$daterep, format="%Y%m%d"))
# How to do it the plyr way?
ddply(d2, c("daterep"), function(df){as.Date(df, format="%Y%m%d")})
# returns: Error in as.Date.default(df, format = "%Y%m%d") :
# do not know how to convert 'df' to class "Date"
I'm pretty sure that when you do that you are sending dataframes to 'x' that have been split apart on the basis of their daterep values. Why should there be a "plyr way" of converting types when there is no splitting of dataframes needed? If you wanted nevertheless to do it the "plyr way": d2 <- ddply(d, NULL , transform, daterep = as.Date(strptime(d$daterep, format="%Y%m%d"))
Make that:
d2 <- ddply(d, NULL , transform,
daterep = as.Date(strptime(daterep, format="%Y%m%d")) )
d2 # you do get an unnecessary column
-- David Winsemius, MD West Hartford, CT
______________________________________________ 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.
David Winsemius, MD West Hartford, CT