[R] Non-standard characters in Ascii-Files

Schneider, Manuel Manuel.Schneider at eawag.ch
Tue Aug 30 17:22:12 CEST 2005


Dear Henrik, dear Peter

many thanks for your reply. I've now done tests on other computers and yes, this is a local problem on my computer. Unfortunately, my second HD produces the same flaw so it must be the disk controller or whatever. When correcting the files with vedit, the non-standard characters sometimes seem to jump around to other places. Funny bug, but definitely nothing to do with R.

Best regards

Manuel

-----Ursprüngliche Nachricht-----
Von: Henrik Bengtsson [mailto:hb at maths.lth.se] 
Gesendet: Montag, 29. August 2005 15:43
An: Peter Dalgaard
Cc: Schneider, Manuel; r-help at stat.math.ethz.ch
Betreff: Re: [R] Non-standard characters in Ascii-Files


Peter Dalgaard wrote:
> "Schneider, Manuel" <Manuel.Schneider at eawag.ch> writes:
> 
> 
>>Dear R-list
>>
>>In R 2.1.1 under Win XP on a P4 with 2GB Ram when typing
>>
>>>temp<-matrix(c(1:16000000),4000,4000)
>>>write(file="temp.txt", temp)
>>>scan("temp.txt")
>>
>>I receive:
>>Error in scan("temp.txt") : scan() expected 'a real', received 
>>'414851'
>>
>>The motivation for evoquing this meassage is that I am getting the 
>>same meassage with exported Ascii-Files from the GIS. The files 
>>contain very few, randomly scattered non-standard Ascii-characters. 
>>This seems to be a local problem on my machine but I do not have a 
>>clue on the reason (OS, Memory, HD?) nor who to ask. So, my apologies 
>>for misusing this list and many thanks for any suggestion.
> 
> 
> I tried this on a Linux box (with a somewhat outdated R version 
> though), and apart from eating up memory and disk space, nothing 
> untoward seems to happen:
> 
> 
>>temp<-matrix(c(1:16000000),4000,4000)
>>write(file="/tmp/temp.txt", temp)
>>dummy <- scan("/tmp/temp.txt")
> 
> Read 16000000 items

and on my R v2.1.1 patched (2005-08-25) on WinXP Pro SP2 (sic!), I get

 > temp<-matrix(c(1:16000000),4000,4000)
 > write(file="temp.txt", temp)
 > file.info("temp.txt")$size
[1] 136088897
 > rm(temp)
 > dummy <- scan("temp.txt")
Read 16000000 items

> I'd suspect your harddisk or the disk controller...

I second this, check the file with an external application or try the 
following ad-hoc code:

zcan <- function(filename) {
   fh <- file(filename, open="r");
   on.exit(close(fh));
   count <- 0;
   while(TRUE) {
     s <- readChar(fh, n=1024);
     if (nchar(s) == 0)
       break;
     count <- count + nchar(s);
     if (gsub("[\n 0-9]*", "", s) != "")
       stop("Error after reading ", count, " characters: ", s);
   }
}

Cheers

Henrik




More information about the R-help mailing list