[R] How to convert a character into a filename?

Nordlund, Dan (DSHS/RDA) NordlDJ at dshs.wa.gov
Wed Sep 22 01:12:24 CEST 2010


> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
> project.org] On Behalf Of Tucson August
> Sent: Tuesday, September 21, 2010 3:15 PM
> To: r-help at r-project.org
> Subject: [R] How to convert a character into a filename?
> 
> Dear list,
> 
> How to convert a character to a filename?
> such as:
> 
> x <- "height"  # "height" here is actually a name of a colume in a
> data
> frame
> filename <- paste("plant,x")
> write.csv (data, file="C:/plant/filename.csv)  # having trouble with
> this
> statement, how to 'write' the filename here?
> 
> All I want from above is to write 'data' to a file named
> plantheight.csv
> 
> (the ultimate goal is to use a loop to transfer each column of a data
> frame
> into a separated file named from that column
> e.g. to create many files with different names but the names are all
> like:
> plantheight.csv, plantweight.csv, and height, weight.., are column
> names of
> a data frame)
> 
> Thank you!
> 
> Tuc Aug.
> 

For illustration purposes I will call your data frame, your.data .  You can loop through the column names of your.data, construct an 'out' file name and then write the data.  Something like

for(i in names(your.data)){
  out <- paste("C:/plant/plant", i, ".csv",sep="")
  write.csv(your.data[i], out, row.names=FALSE)
  }

You didn't tell us whether you wanted row names witten to the file or not, so I decided not.  Likewise, I decided to write column names (the default).

Hope this is helpful,

Dan

Daniel J. Nordlund
Washington State Department of Social and Health Services
Planning, Performance, and Accountability
Research and Data Analysis Division
Olympia, WA 98504-5204




More information about the R-help mailing list