HI,

Sorry, I didn't know that "prov" exists in different columns.

Try this:
#changed your example dataset to include one more column and reordered the 
columns in list elements

mylist<-list(df1=data.frame(a=seq(1,10,1), 
b=sample(1:15,10,replace=FALSE),prov=c(rep('QUE', 5), rep('BC', 5))), 
df2=data.frame(prov=c(rep('Quebec', 5), rep('AB', 
5)),a=seq(1,10,1),b=sample(1:25,10,replace=FALSE)))


res<-lapply(mylist,function(x) 
data.frame(x[colnames(x)!="prov"],prov=recode(x$prov,"'QUE'='QC';'Quebec'='QC'")))

 res
#$df1
 #   a  b prov
#1   1  9   QC
#2   2  8   QC
#3   3  1   QC
#4   4  7   QC
#5   5 15   QC
#6   6 10   BC
#7   7  6   BC
#8   8 11   BC
#9   9  5   BC
#10 10 14   BC

#$df2
 #   a  b prov
#1   1 23   QC
#2   2 16   QC
#3   3 12   QC
#4   4 14   QC
#5   5 17   QC
#6   6  7   AB
#7   7  6   AB
#8   8 21   AB
#9   9  5   AB
#10 10  1   AB


A.K.

----- Original Message -----
From: Simon Kiss <sjk...@gmail.com>
To: arun <smartpink...@yahoo.com>
Cc: 
Sent: Friday, November 9, 2012 9:39 AM
Subject: Re: [R] using lapply with recode

Hi there:
None of these suggestions do the work. I tried Jim's suggestion and it returns 
the following:

####
$df1
    a prov
1   1  QUE
2   2  QUE

#####
$df2
    a   prov
1   1 Quebec
2   2 Quebec

So it didn't actually do the recode.  Arun's first suggestion returned the same 
problem. And his second suggestion won't work because in the original data set 
the variable "prov" exists in different columns; I can't use the same column 
subscript to access each column.
Simon Kiss
On 2012-11-08, at 10:43 PM, arun wrote:

> HI,
> 
> Sorry, I gave the wrong answer.  res<-lapply(mylist,function(x) 
> data.frame(a=x[,1],prov=recode(x[,2],"'QUE'='QC';'Quebec'='QC'")))
> res[[1]][1:6,]
> #  a prov
> #1 1   QC
> #2 2   QC
> #3 3   QC
> #4 4   QC
> #5 5   QC
> #6 6   BC
> A.K.
> 
> 
> 
> ----- Original Message -----
> From: Simon Kiss <sjk...@gmail.com>
> To: r-help@r-project.org
> Cc: 
> Sent: Thursday, November 8, 2012 10:06 PM
> Subject: [R] using lapply with recode
> 
> Hello: 
> Forgive me, this is surely a simple question but I can't figure it out, 
> having consulted the help archives and "Data Manipulation With R" (Spector).
> I have a list of 11 data frames with one common variable in each (prov). I'd 
> like to use lapply to go through and recode one particular level of that 
> common variable. 
> I can get the recode to work, but it only returns the variable that has been 
> recoded.  I need the whole data frame with the recoded variable.
> 
> Thank you for your help. Reproducible data and my current code are below.
> 
> 
> ####Sample Data
> mylist<-list(df1=data.frame(a=seq(1,10,1), prov=c(rep('QUE', 5), rep('BC', 
> 5))), df2=data.frame(a=seq(1,10,1), prov=c(rep('Quebec', 5), rep('AB', 5))))
> str(mylist)
> 
> ###My current code
> lapply(mylist, function(x) {
> recode(x$prov, "'QUE'='QC' ; 'Quebec'='QC'")
> }
> )
> 
> *********************************
> Simon J. Kiss, PhD
> Assistant Professor, Wilfrid Laurier University
> 73 George Street
> Brantford, Ontario, Canada
> N3T 2C9
> 
> ______________________________________________
> R-help@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.
> 

*********************************
Simon J. Kiss, PhD
Assistant Professor, Wilfrid Laurier University
73 George Street
Brantford, Ontario, Canada
N3T 2C9
Cell: +1 905 746 7606

Please avoid sending me Word, PowerPoint or Excel attachments. Sending these 
documents puts pressure on many people to use Microsoft software and helps to 
deny them any other choice. In effect, you become a buttress of the Microsoft 
monopoly.

To convert to plain text choose Text Only or Text Document as the Save As 
Type.  Your computer may also have a program to convert to PDF format. Select 
File, then Print. Scroll through available printers and select the PDF 
converter. Click on the Print button and enter a name for the PDF file when 
requested.

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

Reply via email to