P Mads
2016-Sep-14 20:41 UTC
[R] Need help with renaming sub-directories and its files after attribute vales from a shapefile
Hello, Keep in mind I am VERY new to using R... What I am trying to do is package hundreds of files into a new sub-directory. I was able to accomplish this with the code below. HOWEVER, I have come to find that instead of merely having to name the new sub-directory after the 7-digit numeric prefix in the file names, the sub-directories AND the corresponding files all have to be named after a certain attribute value in a shapefile ("DOQ_Index"). Basically, what I need to do is 1) match the filenames' 7-digit prefix to the "ID" attribute field in the shapefile (eg. 4310950 = '4310950' - "ID" field); then, 2) for those matches, I need to create a sub-directory based on a DIFFERENT attribute field value ("CODE" field) and then 3) rename the matching files based on the "CODE" attribute field and move those files to the new sub-directory. Whew. Does that make sense?? Anyway, can someone help me with this while keeping the basic code structure below? Thank you! - Pmads #read in the QuadIndex *-- I recently added this step thinking this is how to read the shapefile* q<- readOGR(dsn="C:/GeoHub/Test", layer="DOQ_Index") #set the working directory setwd("C:/GeoHub/Test/TestZip") #get a list of directories dlist<- list.dirs() #remove the first vector dlist<- dlist[-1] #If the files are all in the working directory vec1 <- list.files() vec1 lst1 <- split(vec1,substr(vec1,3,9)) #Create the sub-directory based on the first 7 numeric prefix sapply(file.path(getwd(),names(lst1)),dir.create) #Move the files to the sub-directory lapply(seq_along(lst1), function(i) file.rename(lst1[[i]],paste(file.path(names(lst1[i])), lst1[[i]],sep="/"))) list.files(recursive=TRUE) [[alternative HTML version deleted]]