JMP는 SAS '모두들 안녕
저는 오래된 SAS 헤드입니다 (Base programming에 능숙합니다 ...). 그러나... !
JMP에서 다소 간단한 작업을하고 싶습니다. 그래서 ...
기본적으로 CITIES.JMP를 열고 CO에 누락 된 값이있는 모든 행 (및 필드)을 유지하고이 하위 집합을 새로운 새로운 행 아래에 저장하고 싶습니다. CITIES_MISS.jmp.
기본 등가물은 "CO가 누락 된 위치"입니다.
나는 그것을 풀 수 없다. 내 쿼리가 제대로 작동한다고해도 하위 집합을 열 자마자 표시되는 모든 데이터 행을 찾을 수 있습니다. 샘플 코드로 도움을 청하십시오. JMP와 SAS 로직이있는 경우 논리적 차이점을 설명하십시오.
고마워요. 친절 해요.
초보자
재 : SAS의 JMP 유추 '필요한 JSL은 다음과 같습니다.
NamesDefaultToHere(1);
dt1 = Open("$SAMPLE_DATA/Cities.jmp");
missingCORows = dt1 << getRowsWhere(IsMissing(:CO));
dt2 = dt1 << Subset(Rows(missingCORows));
dt2 << setName((dt << getName)||"_MISS");
'도움말> 책> 스크립팅 가이드'및 '도움말> 스크립팅 인덱스'를 사용해보십시오. 비교를 너무 많이 생각하기보다는 문제와 해결책에 '근접한'작업 코드로 시작할 것입니다. 경험을 통해 여기서 많은 도움을 얻을 수 있음을 보여줍니다.
재 : SAS의 JMP 유추 '고맙습니다. 이제 행이 있습니다.
어제 나는 약 4 시간 (!!)의 시간을 보냈으며 달성하기까지조차하지 않았다.
Scripting Guide, JSL Syntax Reference, WWW를 사용하여 그 결과.
그래서, 내가 모든 것을 지키는 방법을 묻는다면 나에게 인내심을 가져라.
다른 CTITIES 필드들, 예. CITY, SO2 등 친절합니다.
재 : SAS의 JMP 유추 '나는 당신이 이것의 스크립트 버전을 찾고 있다고 확신하고 나는 다른 누군가가 제공 할 수 있도록 그것을 떠날 것이다. 개인적으로 필자는 스크립팅없이 원하는 것의 95 %를 수행 할 수 있으며, JMP와 SAS (또는 거의 모든 다른 프로그램)의 주요 차이점 중 하나입니다. 스크립팅을 사용하지 않고 행 - 행 선택 아래에서 원하는 것을 수행하려면 - 행 이름 CO을 선택하고 강조 표시하고 공백으로 두십시오. 당신이 찾고있는 5 개의 행을 선택할 것입니다. 그런 다음 표에서 부분 집합을 클릭하면 모든 열과 그 5 행만 표시됩니다.
불행히도 JMP가 방금 수행 한 작업을 자동으로 스크립트하는 방법은 없다고 생각합니다. 분석을 수행하고 스크립트를 저장하면 스크립트가 자동으로 생성됩니다. 그러나 JMP가 자동으로 테이블 조작 스크립트를 작성하는 방법은 없다고 생각합니다. 나는 그곳에 있었으면 좋겠다. 그리고 내가 모르는 뭔가가있을 수도있다.
재 : SAS의 JMP 유추 '간단한 평가를 해주셔서 대단히 감사합니다.
제 직업 중 하나는 JMP의 강점과 한계를 평가하여 비즈니스 요구 사항으로 스크립팅함으로써 프로세스를 자동화하는 것입니다.
JMP가 대부분의 간단한 ETL 프로세스를 처리 할 수 없다면 JMP없이 진행해야합니다.
분석 포트폴리오가 훌륭하고 멋쟁이 같아 보이기 때문에 어느 쪽이 유감 스럽겠습니까?
재 : SAS의 JMP 유추 '물론 JMP는 스크립트로 원하는 것을 할 수 있습니다. 나는 당신이 요구 한 것이 하나도없이 행해질 수 있다는 것을 지적하고 있습니다. 스크립트없이 수행하는 작업에는 백그라운드에서 실행되는 스크립트가 있습니다. JMP를 작동시키는 데 쓴 4 시간은 적절한 스크립트를 알아내는 데 4 시간 씩 걸렸습니다. 나는 5 초 동안 스크립트없이 작업을 완료했다. 이해합니다. 귀하의 업무는 JMP를 평가하는 것이며 요구 사항은 스크립팅입니다. 음, 그 요구 사항이 충족됩니다. 스크립트 언어를 평가하는 것이 중요하다면 다른 사람들이 응답 할 때까지 기다려야합니다. 다른 언어에 비해 JMP 스크립팅을 할 수있는 사람들이 많이 있습니다.
재 : SAS의 JMP 유추 '어쩌면 JMP 커뮤니티에 대한 요청을 다시 할 수 있습니다. 추천할만한가요?
가능한 JMP 스크립트 접근법을 요구할 수있는 특정 JMP 포럼?
재 : SAS의 JMP 유추 '나는 당신이 '당신이 할말을 말할 때하고 싶은 것의 범위에 관해서는 명확하지 않은 liitle입니다. 가능한 JMP 스크립트 접근법을 요구할 수있는 곳 '. 정확히, 뭐라고?
언급했듯이 JSL을 포함하여 JMP의 모든 것을 지원하기에 좋은 곳입니다. 그러나이 스레드가 보여 주듯이 명확한 그림을 얻는 것이 어려울 수 있습니다. 질문을하는 방식에 따라 응답이 도움이 될 수도 아닐 수도 있으며 실제로 질문자보다 더 많은 상황과 사전 지식이 필요할 수도 있고 그렇지 않을 수도 있습니다 있다.
그리고 이미 언급 한 바와 같이 '비교'는 코딩에 어려울 수 있습니다. 소프트웨어 응용 프로그램에서는 훨씬 더 어려워집니다.
JMP가 다른 소프트웨어 (SAS 포함)와 관련하여 귀하의 요구를 어떻게 충족시킬 수 있는지에 대한 진지한 의의가있는 경우 지역 JMP 팀이 참여하고이를 파악하는 데 도움이 될 것입니다.
재 : SAS의 JMP 유추 '당신의 친절한 피드백에 대해 고마워요. 어쩌면 나는 충분히 자신을 분명히하지 않았다.
내가 JMP에 대해 새로운 것보다 더 많은 일이 생기면 나는 더 많은 것을 알게 될 것이다.
어떤 JMP 그룹 또는 목록을 어떻게 JMP를 필터링하는 방법에 대한 내 질문을 게시 할 수
"misisngs"조건에 따라 하위 집합으로 변환합니다. 나는 지금 어떻게 깨달았 는가?
내 원래 게시물에서 "제목"을 말하면 오해의 소지가 많습니다.
불행히도, 나는 그것이 이미 지나갔고 너무 늦은 후에 ...
제목 : Re : SAS에 대한 JMP 유추 : 누락 된 값으로 데이터 필터링닫기,하지만 ....
//open data table
dt1 = Open( "$SAMPLE_DATA/Cities.jmp" );
//select all rows of data table where column CO is missing
dt1 << Select Where( Is Missing( :CO ) );
//create a subset of data table with only selected rows, keeping all columns
dt1 << subset( selected rows( 1 ) );
//note that renaming and saving can be done in one step [DOESNT WORK: SAVED dataset still contains all (N=52) data rows instead of selected (N=5) rows]
dt2 << save( "V:/Process/.../Data/AnewDEMOname.jmp" );
나는 심지어 같은 변형을 시도했다.
Close( dt2, save( "V:/Process/.../Data/AnewDEMOname.jmp" ) );
그것은 단지 작동하지 않습니다. SAVED 데이터 세트에는 여전히 선택된 (N = 5) 행 대신 모든 (N = 52) 데이터 행이 포함됩니다.
이것은 JMP 버그입니까?
Microsoft Windows 10 Enterprise 64 비트에서 JMP ® 14.0.0 (64 비트)을 사용하는 임.
제목 : Re : SAS에 대한 JMP 유추 : 누락 된 값으로 데이터 필터링죄송합니다. dt2에 과제를 제출하는 것을 놓친 것 같습니다.
그것은해야한다:
//open data table
dt1 = Open( "$SAMPLE_DATA/Cities.jmp" );
//select all rows of data table where column CO is missing
dt1 << Select Where( Is Missing( :CO ) );
//create a subset of data table with only selected rows, keeping all columns
//note the assignment of the result of the subset into the variable dt2
dt2 = dt1 << subset( selected rows( 1 ) );
//note that renaming and saving can be done in one step
dt2 << save( "V:/Process/.../Data/AnewDEMOname.jmp" );
이전의 게시물을 고쳐서 나중에 이것을 읽는 사람이 혼란에 빠지게 할 것입니다.
사과드립니다. 진행 상황을 계속 알려주십시오.
재 : SAS의 JMP 유추 '후속 조치 @ian_jmp 그는 대답했다. 이 곳이야. JMP에 대한 질문.
여기에있는 모든 회원들은 기꺼이 올바른 방향으로 여러분을 안내해 드릴 것입니다. 계속 질문하고 우리가 도와 드리겠습니다.
그렇지만 JSL을 배우는 가장 좋은 방법은 JMP를 대화식으로 사용하는 법을 배우는 것입니다. SAS에서 수행하는 방식에 따라 작업을 수행하는 방법에 대한 가정을하지 마십시오. JMP와 SAS의 두 제품은 서로 다른 사용 패턴으로 만들어 졌으므로 사물을 다르게 처리합니다.
대부분의 스크립팅 언어는 대화식으로 작업하는 데 사용하는 것과 동일한 명령을 사용하여 JMP를 자동화하는 것을 기반으로합니다. 예를 들어, 원래 질문에서 다음을 알고 싶었습니다.
기본적으로 CITIES.JMP를 열고 CO에 누락 된 값이있는 모든 행 (및 필드)을 유지하고이 하위 집합을 새로운 새로운 행 아래에 저장하고 싶습니다. CITIES_MISS.jmp.
이것을 대화식으로 수행하는 방법은 CITIES.JMP를 열고 CO가없는 모든 행을 선택한 다음 Tables-> Subset을 사용하여 새 데이터 테이블을 만드는 것입니다.
따라서 JSL은 다음과 같은 패턴을 따릅니다.
//open data table
dt1 = Open("$SAMPLE_DATA/Cities.jmp");
//select all rows of data table where column CO is missing
dt1 << Select Where(is Missing(:CO));
//create a subset of data table with only selected rows, keeping all columns
dt2 = dt1 << subset(selected rows(1));
//note that renaming and saving can be done in one step
dt2 << save("A new name.jmp");
너는 말했다 :
JMP가 대부분의 간단한 ETL 프로세스를 처리 할 수 없다면 JMP없이 진행해야합니다.
분석 포트폴리오가 훌륭하고 멋쟁이 같아 보이기 때문에 어느 쪽이 유감 스럽겠습니까?
나는 여기에서 JMP가 간단하고 (그리고 복잡한!) ETL 프로세스를 처리 할 수 있다고 말할 것입니다. 그래서, 당신이 그것을하는 방법을 알아낼 수 없다면, 그냥 물어보십시오.
여기에 JMP를 배우기위한 최고의 자원.
JMP를 계속 탐험하면서 알려 주시면 기꺼이 도와 드리겠습니다.
[참고 20May2019 : 위의 코드는 dt2에 대한 할당을 보여주기 위해 수정되었습니다. 원래 이것은 실수로 생략되었습니다. 이후 게시물에이 점이 명시되어 있으며 여기에서 수정되었습니다.]
제목 : Re : SAS에 대한 JMP 유추 : 누락 된 값으로 데이터 필터링지금 그것은 효과가 있었다. 매력처럼. 고마워.