Die normale Verwendung von „SelectWhere“ sieht wie folgt aus:
dt<<SelectWhere(:ExampleColumnName > 5);
Und das funktioniert gut. Ich habe Schwierigkeiten damit, wenn ich mehr Flexibilität bei der Gestaltung von „:ExampleColumnName“ benötige.
Wenn ich beispielsweise eine neue Spalte mit studentisierten Residuen in einem Anpassungsmodell speichere, wird eine Spalte mit dem Namen „Protokoll der studentisierten Residuale (KBE/ml) nach Bedingung“ erstellt. Nehmen wir an, ich möchte etwas über 3 oder unter -3 auswählen. Aufgrund des Spaltennamens müsste ich Folgendes verwenden:
dt<<SelectWhere(:Name("Studentized Resid Log(CFU/mL) By Condition")<-3 | :Name("Studentized Resid Log(CFU/mL) By Condition")>3);Meistens ist das in Ordnung, aber nicht immer. Es ist nicht wirklich ideal, die vollständig ausgeschriebene Zeichenfolge in :Name() zu haben. Wenn beispielsweise geplant ist, eine Funktion für eine Vielzahl von Fit-Modellen nutzbar zu machen, die jeweils unterschiedliche Spaltennamen für studentisierte Reste erzeugen, ist dies nicht der Fall Es ist nicht effizient, für jedes mögliche Modell ein eindeutiges „SelectWhere“ zu schreiben (insbesondere, wenn Sie nicht immer vorhersehen können, welches Modell der Benutzer wählen wird).
Was ich gerne arbeiten würde, ist eines/beide der folgenden Dinge:
//Option 1
colName = ""Studentized Resid Log(CFU/mL) By Condition";
dt<<SelectWhere(:Name(colName)<-3 | ::Name(colName)>3);
//Option 2
colRef = Column(dt, colName);
dt<<SelectWhere( colRef <-3 | colRef >3 );
Option 1 gibt den Fehler „Name-Argument muss eine Zeichenfolge in Anführungszeichen sein“ zurück, wenn die SelectWhere-Funktion ausgeführt wird. Scheint, als ob :Name() eine vollständig ausgeschriebene Zeichenfolge erfordert und ein Verweis auf eine solche Zeichenfolge nicht akzeptabel ist.
Option 2 gibt keine Fehler zurück, aber es wird nichts ausgewählt. SelectWhere scheint Spaltenreferenzvariablen nicht wie explizit eingegebene „:XXXX“-Referenzen zu behandeln.
Meine aktuelle Problemumgehung ist nicht besonders gut: Nachdem Fit Model eine neue Spalte erstellt hat, benennen Sie die allerletzte Spalte in der Tabelle in etwas Einfaches und Einzigartiges (wie „StdResid“) um, das direkt in der „normalen Verwendung“ von SelectWhere verwendet werden kann (z. B. „ :StdResid").
Übersehe ich hier etwas Offensichtliches, das mir das Leben erleichtern würde?
Gibt es außerdem eine Möglichkeit, Option 1 und/oder Option 2 zum Laufen zu bringen?