참조가 있는 열 삭제안녕
열을 삭제하는 스크립트를 작성했습니다.그러나 수식에서 다른 열에 대해 참조하는 동안 "이 열을 삭제할 수 없습니다."라는 오류가 발생합니다. "
수식은 없지만 수동으로 "Remove Refs" 옵션을 사용하면 열을 수동으로 삭제할 수 있습니다.
"Remove Refs"를 사용하려면 내 스크립트에서 이 기능을 사용하는 방법을 배워야 합니다.
JMP 16.1.0을 사용하고 있습니다.
고급 통계 모델링자동화 및 스크립팅소비자 및 시장 조사데이터 혼합 및 정리Re: refs가 있는 열 삭제JMP 지원팀에 보고한 문제가 이제 버그로 공개되어 R&D에 보고되었습니다.
대화식으로 수식을 제거할 수 있기 때문에 << Delete Formula 대신 << Delete property("Formula")를 사용할 수 있다는 생각이 들었고 작동하는 것 같지만 요약 테이블을 만들 때 수식에 매우 주의해야 합니다. 그들은 매우 이상한 상호 작용을 할 수 있기 때문에
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//create some formula colums
dt << New Column("deduction", Numeric, "Continuous", Format("Best", 12), Formula(:height - :weight));
dt << New Column("concat_col", Character, "Nominal", Formula(:name||"_"||Char(:name)));
dt_summary = dt << Summary(
Group(:name,:sex, :concat_col),
Mean(:height),
Mean(:deduction),
Freq("None"),
Weight("None"),
Link to original datatable(0)
);
Try(
f1 = Column(dt_summary, "concat_col") << Get Formula;
show(f1);
Column(dt_summary, "concat_col") << Delete Formula;
f2 = Column(dt_summary, "concat_col") << Get Formula;
show(f2);
,
show(exception_msg);
);
Try(
f3 = Column(dt_summary, "concat_col") << Get Formula;
show(f3);
Column(dt_summary, "concat_col") << Delete Property("Formula");
f4 = Column(dt_summary, "concat_col") << Get Formula;
show(f4);
dt_summary << Delete Column("name");
,
show(exception_msg);
);
/*
Close(dt_summary, no save);
Close(dt, no save);
*/Re: refs가 있는 열 삭제요약 테이블과 관련된 문제입니까?
수식을 제거하려고 할 때 요약 테이블에서 몇 가지 이상한 동작을 발견했습니다. 현재 문제를 테스트 중이며 적절한 예를 제시한 후 JMP 지원팀에 티켓을 보내겠습니다. 예제가 준비되면 여기에 게시할 수도 있습니다.
편집하다:
다음은 오늘 발생한 문제에 대한 간단한 예입니다(수식을 거의 사용하지 않습니다...).
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//create some formula colums
dt << New Column("deduction", Numeric, "Continuous", Format("Best", 12), Formula(:height - :weight));
dt << New Column("concat_col", Character, "Nominal", Formula(:name||"_"||Char(:name)));
dt_summary = dt << Summary(
Group(:name,:sex, :concat_col),
Mean(:height),
Mean(:deduction),
Freq("None"),
Weight("None"),
Link to original datatable(0)
);
Try(
dt_summary << Delete Column("name");
,
show(exception_msg);
);
Try(
f = Column(dt_summary, "concat_col") << Get Formula;
show(f);
Column(dt_summary, "concat_col") << Delete Formula;
,
show(exception_msg);
);
/*
Cannot delete column "name" while it is referenced by the formula of column "concat_col".
Removing a formula leaves the data unchanged. Removing references replaces each reference with an empty value. These effects are permanent and cannot be undone.
f = :name || "_" || Char(:name);
exception_msg = {"Column concat_col has no formula"(1, 2, "Delete Formula", Delete Formula /*###*/)};
*/
왼쪽의 열 목록에 수식이 표시되지 않고 수식 패널 상자에도 수식이 표시되지 않습니다.

수식 편집을 클릭하면 수식이 있습니다. 연결에서 "_"를 " "로 변경하면 수식이 사라지고 열이 잠기고 값이 데이터 테이블에서 변경됩니다.


이 경우 간단한 수정은 요약 테이블을 만들기 전에 원래 데이터 테이블에서 모든 수식을 먼저 삭제하는 것일 수 있지만, 매우 이상한 동작이 있을 수 있으므로 수식을 요약 테이블에 복사(값만)해서는 안 된다고 생각합니다. 공식에 따라.
편집2:
이제 JMP 지원팀에 설명한 이 문제/기능에 대한 티켓을 보냈습니다.
Re: refs가 있는 열 삭제숨겨진 수식 열이 있는지 궁금합니다. 실제로 수식 열이 없는 경우 버그처럼 들리며 테이블을 기술 지원에 보내면 문제를 해결하는 데 도움이 될 수 있습니다.
Re: refs가 있는 열 삭제뒤로 물러서서 사용 중인 접근 방식을 고려하는 것이 좋습니다. 이 문제를 해결하는 대신 처음부터 피할 수 있습니다. 예를 들어 다른 데이터 열에서 수식을 사용하는 이유는 무엇입니까? 열을 삭제하려는 이유는 무엇입니까?
수식이 전혀 포함되지 않은 다른 방법을 사용하여 데이터 열을 채울 수 있습니다. JMP를 스크립팅할 때 수식을 사용하는 유일한 이유는 데이터 테이블이 변경될 때 데이터 열을 업데이트해야 하는 경우입니다. 다른 방법이 있습니다.
스크립트를 게시할 수 있습니까? 아니면 스크립트가 수행하는 단계를 설명하시겠습니까?
Re: refs가 있는 열 삭제샘플 데이터 테이블을 제공할 수 있습니까?