On Tue, 22 Apr 2014, William Dunlap wrote:
For me that other software would probably be Octave. I'm interested if
anyone here has read in these files using Octave, or a C program or
anything else.
I typed 'octave read binary file' into google.com and the first hit was
the Octave help file for its fread function. In C fread is also a good
way to go (C and Octave have different argument lists for their fread
functions.) In the Linux shell you can use the od command.
Thanks! My mistake was that I was searching using "R" and "writebin" in
my search string which limited my results too severely. I actually
figured that out before your message came in and felt a little
embarrassed, and that has only gotten worse. But you did give me
something cool that I didn't know:
% R --quiet
con <- gzcon(file("/tmp/file.gz", "wb")) # your gzcon("/tmp/file.gz", "wb")
resulted in an error message
writeBin(c(121:130,129:121), con, size=2)
close(con)
q("no")
% zcat /tmp/file.gz | od --format d2
0000000 121 122 123 124 125 126 127 128
0000020 129 130 129 128 127 126 125 124
0000040 123 122 121
0000046
That's really neat. With my data, I can do this to return the original
matrix:
zcat file.gz | od -vtd2 -w15392 -An > matrix.txt
It is quite fast, too:
$ time -p zcat D1.gz | od -vtd2 -w15392 -An >/dev/null
real 6.08
user 6.86
sys 0.08
If I had realized how little my writeBin() output files had to do with R,
I probably wouldn't have posted here, but I'm glad I did.
FYI -- I was able to use fread() in Octave on the uncompressed version of
the file, but it isn't handling the zipped version as expected. That's an
Octave problem, so I'll deal with them on that one. I might not have zlib
compiled in, or maybe they still have a bug in that function.
Thanks!
Mike
______________________________________________
R-help@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.