일반적인 "SelectWhere" 사용법은 다음과 같습니다.
dt<<SelectWhere(:ExampleColumnName > 5);
그리고 이것은 잘 작동합니다. 내가 어려움을 겪는 것은 ":ExampleColumnName"이 무엇인지에 대해 더 많은 유연성이 필요할 때입니다.
예를 들어 맞춤 모델에 학생화 잔차의 새 열을 저장하면 "조건별 학생화 잔차 로그(CFU/mL)"와 같은 열이 생성됩니다. 3 이상 또는 -3 이하를 선택하고 싶다고 가정해 보겠습니다. 열 이름으로 인해 다음을 사용해야 합니다.
dt<<SelectWhere(:Name("Studentized Resid Log(CFU/mL) By Condition")<-3 | :Name("Studentized Resid Log(CFU/mL) By Condition")>3);이것은 대부분의 경우 괜찮지만 항상 그런 것은 아닙니다. :Name() 내에서 문자열을 완전히 작성해야 하는 것은 실제로 이상적이지 않습니다. 예를 들어, 각각 다른 스튜던트화 잔차 열 이름을 생성하는 다양한 적합 모델에 사용할 수 있는 함수를 만드는 것이 계획이라면 적합하지 않습니다. 가능한 모든 모델에 대해 고유한 "SelectWhere"를 작성하는 것은 비효율적입니다(특히 사용자가 선택할 모델을 항상 예측할 수 없는 경우).
내가 일하고 싶은 것은 다음 중 하나/둘 모두입니다.
//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 );
옵션 1은 SelectWhere 함수가 실행될 때 "이름 인수는 따옴표로 묶인 문자열이어야 합니다" 오류를 반환합니다. :Name() 은 완전히 작성된 문자열이 필요하고 하나에 대한 참조는 허용되지 않는 것 같습니다.
옵션 2는 오류를 반환하지 않지만 아무 것도 선택되지 않습니다. SelectWhere는 명시적으로 입력된 ":XXXX" 참조와 같은 열 참조 변수를 처리하지 않는 것 같습니다.
현재 해결 방법은 좋지 않습니다. 모델 맞춤이 새 열을 만든 후 테이블의 맨 마지막 열 이름을 SelectWhere의 "일반적인 사용"에서 직접 사용할 수 있는 간단하고 고유한(예: "StdResid") 이름으로 바꿉니다(예: " :StdResid").
여기에서 내 삶을 더 쉽게 만들어 줄 분명한 것을 놓치고 있습니까?
또한 옵션 1 및/또는 옵션 2가 작동하도록 하는 방법이 있습니까?