[R] Function doesn't work inside loop but works outside

Ek Esawi e@@w|ek @end|ng |rom gm@||@com
Tue Mar 5 17:18:20 CET 2019


Hi All,

I am using xlsx package to extract and clean data from an Excel
Workbook. I ran into a strange behavior that I don’t understand. The
gsub doesn’t work inside the loop but does outside the loop as shown
on my code.. Tried to Google for help but nothing came up.

My code loads and reads data from sheets in the workbook as a list of
data frames and assign them names. I wanted to replace the numbers
with spaces inside each part of the description column on each data
frame using gsub.

Example data:
Date        description       number
12/12/12  AAAA234BBB    1
1/3/12      cccc65bb35ff      2
2/7/13      234abababab     3

I want to have the description column to be like this.
               AAAA BBB
               Cccc bb ff
                  abababab

My code

MyFile <- "C:/Users/name/Documents/Testing2.xlsx"
MyWBook <- loadWorkbook(MyFile)
MySNames <- list(names(getSheets (MyWBook)))
NumSheets <- length(getSheets(MyWBook))

for (i in 1:NumSheets) {
  MySNames[[i]]
<-read.xlsx(MyFile,i,as.data.frame=TRUE,header=TRUE,keepFormulas=FALSE,stringsAsFactors=FALSE)
  gsub("'|-|[0-9]","",MySNames[[i]]$Description)
}

The gsub function above doesn’t work, but when I tried the function
outside the loops, as shown below, it worked.
gsub("'|-|[0-9]","",MySNames[[2]]$Description)


Thanks  in advance--EK



More information about the R-help mailing list