Skip to content

using lapply with recode

1 message · arun

#
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 <sjkiss at gmail.com>
To: arun <smartpink111 at 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:

            
*********************************
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.