9624

Minitab 21 - If-Funktion des Minitab-Rechners - Was mache ich bei verschiedensprachigen Regionaleinstellungen?

  • Erstellt am 6.4.2022
  • Software: Minitab 21, 20, 19

Es gibt eine Rechnerfunktion If. Für die Eingabespalte kann ich damit zeilenweise eine Fallunterscheidung durchführen. Angenommen, C1 sei gegeben durch

C1
   
1 1
2 2
3 3
4 4
5 5

und ich verwende in einem Betriebssystem mit deutschsprachigen Regionaleinstellungen den Befehl

Let C2 = If(C1<=3;"A";"B")

mit Semikolon als Trennzeichen für die Argumente, beziehungsweise in einem Betriebssystem mit englischsprachigen Regionaleinstellungen den Befehl

Let C2 = If(C1<=3,"A","B")

mit Komma als Trennzeichen für die Argumente. Damit erhalte ich die Ausgabe

C1 C2-T
   
 
1 1 A
2 2 A
3 3 A
4 4 B
5 5 B

Nun habe ich folgende Situation:

Ich will eine Anwendung schreiben, zum Beispiel ein Exec-Makro oder ein Excel-Template zum fernsteuern von Minitab, bei welchem ich diesen Befehl mit den von den Regionaleinstellungen abhängigen Argumenten-Trennzeichen verwenden müsste. Diese Anwendung setzen verschiedene Nutzer in meinem Unternehmen ein, deren Betriebssysteme teilweise deutschsprachige, teilweise englischsprachige Regionaleinstellungen haben. Gibt es einen Ansatz, mit dem ich dies umgehen könnte, indem ich stattessen einen von den Regionaleinstellungen unabhängigen Befehl schreibe?

Erläuterung

In diesem Artikel erläutern wir zwei Lösungsansätze, die Sie ausprobieren könnten.

Ansatz 1: Schreiben des Befehls in ein globales oder lokales Makro

Globale und lokale Minitab-Makros verwenden unabhängig von den Regionaleinstellungen das Komma als Trennzeichen für die Argumente in Rechnerfunktionen. Wenn Sie den Rechnerbefehl

Let C2 = If(C1<=3,"A","B")

in ein globales oder lokales Makro schreiben, können Sie dieses mit dem Befehl % aufrufen. Entweder, jeder Anwender speichert das Makro in den Speicherort für Makros, oder es gibt einen Ordner, der auf jedem der Anwenderrechner vorhanden ist, und Sie rufen das Makro zusammen mit dem Verzeichnis auf.

Ansatz 2: Rechnerfunktion Sign und Minitab-Befehl Convert

Die Funktion Sign ordnet einer reellen Zahl ihr Vorzeichen zu. So würde der Befehl

Let C4000 = C1-3

zum Ergebnis

C4000
   
1 -2
2 -1
3 0
4 1
5 2

führen, und damit der Befehl

Let C4000 = Sign(C1-3)

zu diesem Ergebnis:

C4000
   
1 -1
2 -1
3 0
4 1
5 1

Da die beiden Alternativen C1 ≤ 3 und C1 > 3 abgebildet werden, und wir hier alle Werte < 3 auf -1, den Wert 3 selbst aber auf 0 abbilden, müssten wir noch zwei Operationen in der Formel ergänzen.

Let C4000 = Sign(C1-3)-1/2

führt zum Ergebnis

C4000
   
1 -1,5
2 -1,5
3 -0,5
4 0,5
5 0,5

sodass

Let C4000 = Sign(Sign(C1-3)-1/2)

das folgende ergibt:

C4000
   
1 -1
2 -1
3 -1
4 1
5 1

Die Idee ist, allen Zeilen mit Wert -1 den Buchstaben A und allen Zeilen mit Wert 1 den Buchstaben B zuzuordnen. Hier helfen diese Befehlszeilen:

Copy -1 1 C3998.
Copy "A" "B" C3999.
Convert C3998 C3999 C4000 C2;
  NoDefault.
Erase C3998-C4000.

Zu diesen Befehlen siehe Kopieren einer Spalte in Konstanten und Neukodieren mit Hilfe einer Umwandlungstabelle sowie Unwiderrufliches Löschen von Spalten, Konstanten oder Matrizen. Jetzt enthält Spalte C2 den Buchstaben A in den Zeilen, in denen C1 ≤ 3, und den Buchstaben B in den Zeilen, in denen C1 > 3 ist.

C2-T
   
1 A
2 A
3 A
4 B
5 B

Zusammengefasst sind die Befehlszeilen

Let C4000 = Sign(Sign(C1-3)-1/2)
Copy -1 1 C3998.
Copy "A" "B" C3999.
Convert C3998 C3999 C4000 C2;
  NoDefault.
Erase C3998-C4000.

Question?

Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein., wenn Sie eine Frage zu diesem Artikel haben.