2012-04-05 29 views
2

Ich habe Beobachtungen, die 1 Dollarzeichen ($) haben, und Beobachtungen, die 2 Dollarzeichen ($) haben. Ich möchte jeder Beobachtungsart unterschiedliche Werte zuweisen. Es sollte wie folgt aussehen:Regulärer Ausdruck in SAS

"200 $ 300 $" 1. "$ 200" wird 2. zugewiesen bekommt

Ich habe versucht, mit Perl Wildcards den ganzen Tag spielen zugewiesen, aber kein Glück.

Danke.

Antwort

6

Wie wäre es mit der SAS countc() Funktion zu zählen, wie oft '$' erscheint?

%put %sysfunc(countc($300 $400,'$')); /* returns 2 */ 
%put %sysfunc(countc($300 ,'$'));  /* returns 1 */ 
+1

Crap. Habe vergessen, dass SAS all diese spaßigen superspezifischen Funktionen hatte. Ja, das macht absoluten Sinn. – aesir

3

könnten Sie die goatse operator:

my @str = ('$200 $300', '$200'); 

foreach my $str (@str) { 
    my $count =()= $str =~ /\$/g; 
    print "count for $str is $count\n"; 
} 

Dann je nachdem, was Ihre $count ist dementsprechend die Werte zuweisen.

+2

+1 für mich durch den Code zu sehen, bis ich es gefunden: p – user667489