[R] Suggestions for vectorizing/double loop

Luanna Dixson justanotherdigression at gmail.com
Mon Jan 23 13:28:17 CET 2017


I need to rename a bunch of files, by searching for string matches in a
list. Each list element containings a character with the old filename that
I want to match to, and the new file name that I want to rename by.

For instance, here filename '1001.xls' should match to list[[1]]$oldname
and I want to rename it to 'newa.xls' from list[[1]]$newname.

The actual new file names I have will feature a random alphanumeric number
and the list will have a length of ~600.


# files I want to rename

files with old file name =c('1001.xls', '1002.xls')

# list with old file names and new file names

oldnames=c('1001', '1002', '1003')

newnames=c('newa', 'newb', 'newc')

df=data.frame(oldnames,newnames)

list <- split(df, rownames(df))


# turn list elements in character

for(i in 1:length(list)) list[[i]]$oldnames=as.character(list[[i]]$oldnames)

for(i in 1:length(list)) list[[i]]$newnames=as.character(list[[i]]$newnames)


I heard that it would be better to vectorize this than trying to do a
double loop so if someone could give me a hint about how to do this I would
be very grateful!

	[[alternative HTML version deleted]]



More information about the R-help mailing list