[R] For loop output

Jenny Williams jenny.williams at kew.org
Fri Aug 9 13:33:44 CEST 2013


To update on the use of this little string, I am trying to use it to automate files to be loaded into a raster stack.
I think the issue I have with the string is related to the backslashes. I need to just read the pure text so that the datasets can be sourced, though I am not sure whether the stack function will accept a string of files in this format either!

>individual.proj.quote <-capture.output(write.table(matrix(individual.proj, 1), quote=TRUE, sep=",", row.names=FALSE, col.names=FALSE))

> individual.proj.quote
[1] "Arabica/proj_current/individual_projections/proj_current_arabica_pa.data.tmp$pa.tab_Full_GBM.img\",\"Arabica/proj_current/individual_projections/proj_current_arabica_pa.data.tmp$pa.tab_Full_GLM.img\",\"Arabica/proj_current/individual_projections/proj_current_arabica_pa.data.tmp$pa.tab_Full_MARS.img\",\"Arabica/proj_current/individual_projections/proj_current_arabica_pa.data.tmp$pa.tab_Full_RF.img" 

>test4 = stack(individual.proj.quote)
Cannot create a RasterLayer object from this file. (file does not exist)


I ran a test with just one file which worked, but haven't managed to combine more files into the stack:

>test
[1] "Arabica/proj_current/individual_projections/proj_current_arabica_pa.data.tmp$pa.tab_Full_GBM.img"

> library(raster)
> test.1 = stack(test)
> test.1
class       : RasterStack 
dimensions  : 9241, 8521, 78742561, 1  (nrow, ncol, ncell, nlayers)
resolution  : 0.008333334, 0.008333334  (x, y)
extent      : -18.00832, 53.00001, -38.00833, 39.00001  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +ellps=WGS84 +no_defs 
names       : proj_current_arabica_pa.data.tmp.pa.tab_Full_GBM 
min values  :                                                6 
max values  :                                              995


-----Original Message-----
From: David Carlson [mailto:dcarlson at tamu.edu] 
Sent: 08 August 2013 18:04
To: Jenny Williams; r-help at r-project.org
Subject: RE: [R] For loop output

It's not clear how you are planning to use this within R, but you don't need a loop.

individual.proj.quote <-
capture.output(write.table(matrix(individual.proj, 1), quote=TRUE, sep=",", row.names=FALSE, col.names=FALSE))

This produces a single character string which consists of the quoted file names separated by commas.

-------------------------------------
David L Carlson
Associate Professor of Anthropology
Texas A&M University
College Station, TX 77840-4352

-----Original Message-----
From: r-help-bounces at r-project.org
[mailto:r-help-bounces at r-project.org] On Behalf Of Jenny Williams
Sent: Thursday, August 8, 2013 10:06 AM
To: 'r-help at r-project.org'
Subject: [R] For loop output

I am having difficulty storing the output of a for loop I have generated. All I want to do is find all the files that I have, create a string with all of the names in quotes and separated by commas. This is proving more difficult than I initially anticipated.
I am sure it is either very simple or the construction of the for loop is not quite right The result gets automatically printed after the loop but I can't seem to save it.
I have tried to create the element in advance but the result is the same: NULL

individual.proj =
Sys.glob("Arabica/proj_current/individual_projections/*.img",
dirmark = FALSE)
individual.proj
[1]
"Arabica/proj_current/individual_projections/proj_current_arabic
a_pa.data.tmp$pa.tab_Full_GBM.img"
 [2]
"Arabica/proj_current/individual_projections/proj_current_arabic
a_pa.data.tmp$pa.tab_Full_GLM.img"
 [3]
"Arabica/proj_current/individual_projections/proj_current_arabic
a_pa.data.tmp$pa.tab_Full_MARS.img"
 [4]
"Arabica/proj_current/individual_projections/proj_current_arabic
a_pa.data.tmp$pa.tab_Full_RF.img"
 [5]
"Arabica/proj_current/individual_projections/proj_current_arabic
a_pa.data.tmp$pa.tab_RUN10_GBM.img"


##generate loop to create string out of the table of projected files.
L.ip = length(individual.proj)
  for (i in 1:L.ip){
           individual.proj.i <- individual.proj[i]
           individual.proj.quote = cat(paste('"', individual.proj.i, '"', ',',sep=""))
           }
"Arabica/proj_current/individual_projections/proj_current_arabic
a_pa.data.tmp$pa.tab_Full_GBM.img","Arabica/proj_current/individ
ual_projections/proj_current....

##print output string
individual.proj.quote
NULL

#command to be applied to individual.proj.quote to removed the final comma from the string substr(individual.proj.quote, 1, nchar(individual.proj.quote)-1)

Any help or pointers would be greatly appreciated, no amount of extensive google searches have been fruitful so far.


******************
Jenny Williams
Spatial Information Scientist, GIS Unit
Herbarium, Library, Art & Archives Directorate Royal Botanic Gardens, Kew Richmond, TW9 3AB, UK

Tel: +44 (0)208 332 5277
email: jenny.williams at kew.org<mailto:jenny.williams at kew.org>
******************

Film: The Forgotten Home of Coffee - Beyond the Gardens<http://www.youtube.com/watch?v=-uDtytKMKpA&sns=tw>
Stories: Coffee Expedition -
Ethiopia<http://storify.com/KewGIS/coffee-expedition-ethiopia>
             Kew in Harapan Rainforest
Sumatra<http://storify.com/KewGIS/kew-in-harapan-rainforest>
Articles: Seeing the wood for the
trees<http://www.kew.org/ucm/groups/public/documents/document/kp
pcont_060602.pdf>
How Kew's GIS team and South East Asia botanists are working to help conserve and restore a rainforest in Sumatra. Download a pdf of this article here.<http://www.kew.org/ucm/groups/public/documents/document/kp
pcont_060602.pdf>


________________________________
The Royal Botanic Gardens, Kew is a non-departmental public body with exempt charitable status, whose principal place of business is at Royal Botanic Gardens, Kew, Richmond, Surrey TW9 3AB, United Kingdom.

The information contained in this email and any attachments is intended solely for the addressee(s) and may contain confidential or legally privileged information. If you have received this message in error, please return it immediately and permanently delete it. Do not use, copy or disclose the information contained in this email or in any attachment.

Any views expressed in this email do not necessarily reflect the opinions of RBG Kew.

Any files attached to this email have been inspected with virus detection software by RBG Kew before transmission, however you should carry out your own virus checks before opening any attachments. RBG Kew accepts no liability for any loss or damage which may be caused by software viruses.

	[[alternative HTML version deleted]]

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



More information about the R-help mailing list