El uso normal de "Selectwhere" parece ser el siguiente:
dt<<SelectWhere(:ExampleColumnName > 5);
Y esto funciona bien. Con lo que tengo dificultades es cuando necesito más flexibilidad en lo que será ":ExampleColumnName".
Por ejemplo, si guardo una nueva columna de residuos estudentizados en un modelo de ajuste, se creará una columna llamada algo así como "Registro de residuos estudentizados (UFC/mL) por condición". Digamos que quiero seleccionar cualquier cosa por encima de 3 o por debajo de -3. Debido al nombre de la columna, necesitaría usar:
dt<<SelectWhere(:Name("Studentized Resid Log(CFU/mL) By Condition")<-3 | :Name("Studentized Resid Log(CFU/mL) By Condition")>3);Esto está bien la mayor parte del tiempo, pero no siempre. Tener que tener la cadena completamente escrita dentro de :Name() no es realmente ideal; por ejemplo, si el plan es hacer que una función se pueda usar para una variedad de Modelos de ajuste que producirán diferentes nombres de columna Residual estudentizado, es No es eficiente escribir un "Seleccionar dónde" único para cada modelo posible (especialmente si no siempre puede anticipar qué modelo elegirá el usuario).
Lo que me gustaría trabajar es uno o ambos de los siguientes:
//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 );
La opción 1 devuelve el error "El argumento del nombre debe ser una cadena entre comillas" cuando se ejecuta la función Seleccionar dónde. Parece que :Name() requiere una cadena completamente escrita y una referencia a una es inaceptable.
La opción 2 no devuelve errores, pero no se seleccionará nada. Selectwhere no parece tratar las variables de referencia de columna como referencias explícitamente escritas ": XXXX".
Mi solución actual no es excelente: después de que Fit Model cree una nueva columna, cambie el nombre de la última columna de la tabla a algo simple y único (como "StdResid") que se puede usar directamente en el "uso normal" de SelectWhere (por ejemplo, " :StdResidencia").
¿Me estoy perdiendo algo obvio aquí que haría mi vida más fácil?
Además, ¿hay alguna forma de hacer que la Opción 1 y/o la Opción 2 funcionen?