Pack and Unpack Strings in R
see: http://www.nabble.com/Compressing-String-in-R-td21160453.html
On Fri, Jan 9, 2009 at 10:50 AM, Gundala Viswanath <gundalav at gmail.com> wrote:
Dear all,
Does R has any function/package that can pack
and unpack string into bit size?
The reason I want to do this in R is that R
has much more native statistical function than Perl.
Yet the data I need to process is so large that it
required me to compress it into smaller unit -> process it -> finally
recover them back again into string with new information.
In Perl the implementation will look like this:
I wonder how can this be implemented in R.
__BEGIN__
my %charmap = (
A => '00',
C => '01',
G => '10',
T => '11',
);
my %digmap = (
'00' => "A",
'01' => "C",
'10' => "G",
'11' => "T",
);
my $string = 'GATTA';
$string =~ s/(.)/$charmap{$1}/ge;
my $compressed = pack 'b*', $string;
print "COMP: $compressed\n";
printf "%d bytes\n", length $compressed;
my @data;
# Store the compressed bit into array
push @data, $compressed;
# process the array
foreach my $dat ( @data ) {
my $decompressed = unpack 'b*', $dat;
$decompressed =~ s/(..)/$digmap{$1}/ge;
print "$decompressed\n";
# or do further processing on $dat
}
__END__
- Gundala Viswanath
Jakarta - Indonesia
______________________________________________ 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.
Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem that you are trying to solve?