동적 수식에 사용하려고 할 때 열 이름의 따옴표를 처리하는 방법<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />다음과 같이 Greek 및 AlsoGreek 헤더가 있는 테이블이 있다고 가정합니다.
그리스어 또한그리스어
알파 파이
베타 오메가
감마 제타
다음 스크립트는 2개의 열을 결합하는 "concat"이라는 열을 제공합니다. (더 쉽게 읽을 수 있도록 연결 기호 사이에 탭을 추가했습니다.)
dt = 현재 데이터 테이블();
colnames = dt<<열 이름 가져오기;
colstring=":Name(\!"" || char(colnames[1]) || "\!")";
for(i=2,i<=nitems(colnames),i++,
콜스트링=콜스트링 || "||" || ":이름(\!"" || char(열 이름 ) || "\!")"
);
parsecolstring=parse(colstring);
dt<<새 열("concat",formula(parsecolstring));
이제 이상한 점은 테이블 헤더 AlsoGreek을 "AlsoGreek"과 같이 따옴표로 묶으면 코드가 작동하지 않는다는 것입니다.다음은 오류 로그의 출력입니다. 무슨 일이 일어나고 있는지 확인할 수 있도록 위 코드의 모든 변수 뒤에 show를 추가했습니다.
colnames = {그리스어, 이름("\!"AlsoGreek\!"")};
Char(colnames[1]) = "그리스어";
colstring = ":이름(\!"그리스어\!")";
colstring = ":이름(\!"그리스어\!")||:이름(\!"\!"또한그리스어\!"\!")";
")"이 필요했지만 "AlsoGreek"이 발견되었습니다.
1행 열 25: :Name("Greek")||:Name(""►AlsoGreek"")
이에 대한 해결책이 있습니까?그렇지 않은 경우 열 이름에서 따옴표를 추출하는 방법이 있습니까?\!"를 제거하기 위해 대체를 사용해 보았지만 JMP에서는 이를 문자열로 인식하지 못합니다...
어떤 도움이라도 대단히 감사하겠습니다!열 이름에 따옴표가 있는 열이 100개 이상 있습니다.
Re: 동적 수식에서 사용하려고 할 때 열 이름에 따옴표를 처리하는 방법이 있습니다.당신이 달성하려는 것이 무엇인지 이해하기가 어려웠습니다. 그러나 JMP 테이블의 모든 ColumnName을 연결하고 해당 새 이름으로 새 열을 생성하려는 경우 다음 코드가 예제에 적합해야 합니다.
NameofNewColumn 변수를 생성하고 EVAL 함수 내에 포함된 New Column 문에서 이를 사용합니다....당신을 도울 수 있습니다.
dt = 현재 데이터 테이블();
colnames = dt<<열 이름 가져오기;
NameofNewColumn = "";
For(i=1, i < N 항목(열 이름)+1, i++,
NameofNewColumn = NameofNewColumn || Char(열 이름 );
);
eval(dt<<새 열(NameofNewColumn)));
Re: 동적 수식에서 사용하려고 할 때 열 이름의 따옴표를 처리하는 방법제가 직접 답글을 달게 될 것 같네요...
문제는 JMP가 \!"와 연관된 인용문과 그렇지 않은 인용문을 인식하지 못한다는 것입니다.그래서 내 의심은 따옴표가 있는 열에 char 함수를 사용한 다음 나중에 이를 구문 분석하거나 해당 문자열에 대해 다른 작업을 수행하면 문제가 발생할 것이라는 것입니다.
이를 처리하는 방법에는 2가지가 있습니다. 첫 번째 방법은 연결하려는 모든 열을 목록에 넣은 다음 구문 분석(concat(list)) 옵션을 사용하는 것입니다.
(제가 사용한) 다른 방법은 목록의 열을 가져온 다음 간단한 for 문을 사용하여 따옴표를 제거하는 것입니다.
따옴표={},
for(i=1,n<=nitems(origlist),i++,
insert into(noquotes,substitute(char(origlist) ),"\!"",""));
이름으로(원본목록 <<세트 이름(따옴표 없음 );
);
관심 있는 열을 참조하려면 noquotes 목록 이름을 사용하고, 작업을 마친 후에는 위 스크립트를 반대로 수행하여 열 이름을 원래 이름으로 다시 변경할 수 있습니다.