[R] insert/copy skipped lines to output

David Winsemius dwinsemius at comcast.net
Sun Mar 28 19:02:11 CEST 2010


On Mar 28, 2010, at 12:51 PM, Muhammad Rahiz wrote:

> Dear Jannis,
>
> Thanks for the tip. It works but I'd like to improve on the way I  
> did it.
>
> x <- array(1:50,dim=c(10,10)) # data
>
> h1 <- c("ncols                180") # header, line 1
> h2 <- c("nrows               290") # header, line 2
> h3 <- c("xllcorner           -200000") # header, line 3
> h4 <- c("yllcorner           -200000") # header, line 4
> h5 <- c("cellsize             5000") # header, line 5
> h6 <- c("NODATA_value  NA") # header, line 6
>
> h0 <- rbind(h1,h2,h3,h4,h5,h6)
>
> write(ho,"file.txt")
> write.table(x,"file.txt",row.names=FALSE,col.names=FALSE,append=TRUE)
>
> The header should display as;
>
> ncols                   180
> nrows                  290
> xllcorner              -200000
> yllcorner              -200000
> cellsize                 5000
> NODATA_value     NA

Executing that code appears to deliver what you requested. So rather  
than asking us to read you mind, can you explain what is missing?

ncols                180
nrows               290
xllcorner           -200000
yllcorner           -200000
cellsize             5000
NODATA_value  NA
1 11 21 31 41 1 11 21 31 41
2 12 22 32 42 2 12 22 32 42
3 13 23 33 43 3 13 23 33 43
4 14 24 34 44 4 14 24 34 44
5 15 25 35 45 5 15 25 35 45
6 16 26 36 46 6 16 26 36 46
7 17 27 37 47 7 17 27 37 47
8 18 28 38 48 8 18 28 38 48
9 19 29 39 49 9 19 29 39 49
10 20 30 40 50 10 20 30 40 50

-- 
David.

>
>
>
>
>
> Jannis wrote:
>> Hallo,
>>
>> have a look at the documentation of the different output functions
>> (write(),cat(),write.table()). Most of them have an argument like
>> "append". If you set this to TRUE, your command adds the lines you  
>> are
>> writing into the file to the lines already existent in that file.  
>> So if
>> you run this write() command first with your additional data (header
>> data) and then with the "real" data and append=TRUE, your information
>> ends up in the same file.
>>
>>
>> HTH
>> Jannis
>>
>>
>> Muhammad Rahiz schrieb:
>>
>>> Hello all,
>>>
>>> I'd like some advise on this. When I read my files, I pass the  
>>> argument, skip=6, to skip 6 lines of header information. After  
>>> performing the desired calculations, I have the output. Now I want  
>>> to copy the 6 lines of skipped information to the output.
>>>
>>> What I've been doing so far is to use a shell script (i.e. the cat  
>>> function)  to copy the header information to the output file. This  
>>> means I need 2 additional files, namely a file containing the  
>>> header information only, and the shell script to run the the  
>>> function.
>>>
>>> Is there a direct way to perform this in R?
>>>
>>> The following forms the main component of my R script;
>>>
>>> x <- as.matrix(read.table("file.txt",skip=6))
>>> y <- x*2
>>> write.table(y,"output.txt",row.names=FALSE,col.names=FALSE)
>>>
>>>
>>> Thanks
>>>
>>> Muhammad
>>>
>>> ______________________________________________
>>> 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.
>>>
>>>
>>
>> ______________________________________________
>> 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.
>>
>
> ______________________________________________
> 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.

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list