Il normale utilizzo di "SelectWhere" sembra essere il seguente:
dt<<SelectWhere(:ExampleColumnName > 5);
E questo funziona bene. Quello con cui ho difficoltà è quando ho bisogno di più flessibilità in quello che sarà ":ExampleColumnName".
Ad esempio, se salvo una nuova colonna di Residui studentizzati in un modello di adattamento, verrà creata una colonna denominata "Registro dei residui studenti (CFU/mL) per condizione". Diciamo che voglio selezionare qualsiasi cosa sopra 3 o sotto -3. A causa del nome della colonna, dovrei usare:
dt<<SelectWhere(:Name("Studentized Resid Log(CFU/mL) By Condition")<-3 | :Name("Studentized Resid Log(CFU/mL) By Condition")>3);Questo va bene la maggior parte delle volte, ma non sempre. Dover avere la stringa completamente scritta all'interno di :Name() non è proprio l'ideale -- ad esempio, se il piano è quello di rendere utilizzabile una funzione per una varietà di modelli di adattamento che produrranno ciascuno nomi di colonna Residuo Studentizzato diversi, è Non è efficiente scrivere un "SelectWhere" univoco per ogni possibile modello (soprattutto se non puoi sempre anticipare quale modello sceglierà l'utente).
Quello che mi piacerebbe lavorare è uno/entrambi dei seguenti:
//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 );
L'opzione 1 restituisce un errore "L'argomento del nome deve essere una stringa tra virgolette" quando viene eseguita la funzione SelectWhere. Sembra che :Name() richieda una stringa completamente scritta e un riferimento a uno è inaccettabile.
L'opzione 2 non restituisce errori, ma non verrà selezionato nulla. SelectWhere non sembra trattare le variabili di riferimento di colonna come riferimenti ":XXXX" digitati in modo esplicito.
La mia attuale soluzione non è eccezionale: dopo che Fit Model ha creato una nuova colonna, rinomina l'ultima colonna della tabella in qualcosa di semplice e unico (come "StdResid") che può essere utilizzato direttamente nel "normale utilizzo" di SelectWhere (ad esempio, " :StdResid).
Mi sto perdendo qualcosa di ovvio qui che mi semplificherebbe la vita?
Inoltre, c'è un modo per far funzionare l'Opzione 1 e/o l'Opzione 2?