Send는 'Send'에 대한 액세스 또는 평가에서 스크립팅 가능한 개체를 기대합니다.좋은 오후에요,
"쓰기"를 시도할 때 이와 유사한 오류가 발생합니다. "기록" 또는 "저장" 데이터 출력
Send는 'Send' , G << /*###*/ 액세스 또는 평가에서 스크립팅 가능한 개체를 기대합니다.
'보내기' , G << /*###*/Save( "/homedirectory/Drug_test.txt" ) /*###*/
예를 들어 JMP 예제 파일인 "Drug.jmp"에 Fitmodel 예제(아래)를 사용했습니다.
</CODE></P><P><CODE class=" language-jsl">dt = Open( "$SAMPLE_DATA/Drug.jmp" ); obj = dt << Fit Model( Y( :y ), Effects( :Drug, :x ), Personality( Standard Least Squares ), Emphasis( Minimal Report ), Run ); G = obj << Get Effect PValues; Show( G ); //values show in log G << Save( "/homedirectory/Drug_test.txt");// I get the error message:<EM>Send는 'Send' , G << /*###*/ 액세스 또는 평가에서 스크립팅 가능한 개체를 기대합니다.</EM><BR /><EM>// '보내기' , G << /*###*/Save( "/homedirectory/Drug_test.txt" ) /*###*/</EM> // also did not work G<<SAVETEXT></SAVETEXT>
<CODE class=" language-jsl">
What am I doing wrong?
DLC7JMP
<LINGO-LABS id="lingo-labs-769883" slang="en-US" mode="CREATE"><LINGO-LABEL>자동화 및 스크립팅</LINGO-LABEL><LINGO-LABEL>맥 OS</LINGO-LABEL></LINGO-LABS>Re: Send가 'Send'에 액세스하거나 평가할 때 스크립팅 가능한 개체를 기대합니다.이 경우 무엇을 저장하려고 합니까? 결과를 텍스트 파일로 저장하려면 텍스트 파일 저장을 사용해야 합니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Drug.jmp");
obj = dt << Fit Model(
Y(:y),
Effects(:Drug, :x),
Personality(Standard Least Squares),
Emphasis(Minimal Report),
Run
);
G = obj << Get Effect PValues;
Save Text File("$TEMP/drugtest.txt", Char(G));
Web("$TEMP/drugtest.txt"); // should open in default .txt application
따라서 이 경우에는 매트릭스에 잘못된 메시지를 보내는 것을 사용하고 있습니다.
Re: Send가 'Send'에 액세스하거나 평가할 때 스크립팅 가능한 개체를 기대합니다.감사합니다. 이것은 잘 작동합니다.
이 테스트 루프가 "Y" 변수 없이 "분석" 창만 여는 이유를 설명하시겠습니까?
이는 3개의 데이터 열에 대한 테스트입니다. 내 목표는 4,500개의 열에 대해 이를 실행하고 각 분석에 대해 두 개의 p-값을 저장하는 것입니다.
// 파일 열기
dt = 공개 ( "home/AND_Counts_alphaorder_SumNorm.jmp" );
// 응답 열의 범위를 정의합니다.
시작열 = 31 ;
끝컬럼 = 33 ;
// 응답 열을 반복합니다.
for (col = startColumn, col <= endColumn, col++,
responseVar = 열 (dt, col) << 이름 가져오기 ;
obj = dt << 모형 적합 (
Y( responseVar ),
효과( :mass, ::Accl_Temp_ordinal ),
성격(표준 최소제곱),
강조(최소보고),
달리다),
);
P = obj << 효과 얻기 PValues ;
텍스트 파일 저장 ( "~/Projects_AB/Ptest.csv" , Char (P));
// "Y" 없이 3개의 창을 엽니다.
Re: Send는 'Send'에 대한 액세스 또는 평가에서 스크립팅 가능한 개체를 예상합니다.나는 responseVar 주위에 Eval()을 추가하고 Accl_Temp_ordinal 범위를 ::에서
로 수정하면 충분할 것이라고 생각합니다. 또한 그렇게 많은 열을 사용하여 작업하는 경우 먼저 훨씬 적은 양으로 테스트하여 스크립트가 그런 방식으로 작동하도록 하여 실수로 4500 Fit Model 플랫폼이 열리지 않도록 하십시오. 아래는 내가 제안한 수정 사항이 포함된 스크립트 버전입니다.
Names Default To Here(1);
dt = Open("home/AND_Counts_alphaorder_SumNorm.jmp");
// Define the range of response columns
startColumn = 31;
endColumn = 33;
// Loop over the response columns
For(col = startColumn, col <= endColumn, col++,
responseVar = Column(dt, col) << Get Name;
obj = dt << Fit Model(
Y(Eval(responseVar)),
Effects(:mass, :Accl_Temp_ordinal),
Personality(Standard Least Squares),
Emphasis(Minimal Report),
Run
);
);
P = obj << Get Effect PValues;
Save Text File("~/Projects_AB/Ptest.csv", Char(P));
이는 약간 다른 유형의 방법이지만 최소한 결과를 수집하는 방법과 보고서를 닫는 방법에 대한 아이디어를 제공할 수 있습니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
colnames = {"height", "weight"}; // many method of getting these
// Loop over the response columns
colpvals = Associative Array();
For Each({colname}, colnames,
colname = "height"
fm = dt << Fit Model(
Y(Eval(colname)),
Effects(:age, :sex),
Personality(Standard Least Squares),
Emphasis(Minimal Report),
Run
);
pvals = fm << Get Effect PValues;
// list conversion seems to be necessary for for JSON conversion
// and it is easiest to do here
colpvals[colname] = As List(pvals);
fm << close window;
wait(0); // most likely unnecessary
);
Save Text File("$TEMP/test.json", As JSON Expr(colpvals));
// Web("$TEMP/test.json");
결과를 JMP 데이터 테이블로 수집하고 이를 .csv로 변환하는 것을 고려할 수도 있지만 이는 원하는 최종 결과에 따라 다릅니다.
Re: Send가 'Send'에 액세스하거나 평가할 때 스크립팅 가능한 개체를 기대합니다.자르모,
감사합니다. 이 방법을 시도해 보고 작동하면 "해결책으로 승인"을 선택합니다.
다시 한 번 감사드립니다.
더그
Re: Send가 'Send'에 액세스하거나 평가할 때 스크립팅 가능한 개체를 기대합니다.안녕하세요 Jarmo님,
귀하의 솔루션이 작동했습니다.
감사합니다!!
그러나 텍스트 또는 csv로 "텍스트 파일 저장"은 마지막 p-값만 남기고 각 항목을 덮어썼습니다.
따라서 두 파일을 결합하여 JSON 파일을 만들었습니다. 스크립트 하단에 JMP로 가져오는 방법을 설명하는 메모가 포함되어 있습니다.
t에 대해서는 아래를 참조하세요.
다시 한 번 감사드립니다.
더그
Names Default To Here(1);
dt = Open("~home/mydatafile.jmp");
// Loop over the response columns
colpvals = Associative Array();
// Define the range of response columns
startColumn = 23;
endColumn = 42;
// Loop over the response columns
For(col = startColumn, col <= endColumn, col++,
responseVar = Column(dt, col) << Get Name;
fm = dt << Fit Model(
Y(Eval(responseVar)),
Effects(:mass, :Accl_Temp_ordinal),
Personality(Standard Least Squares),
Emphasis(Minimal Report),
Run
);
Pv = fm << Get Effect PValues;
// list conversion seems to be necessary for for JSON conversion
// and it is easiest to do here
colpvals[responseVar] = As List(Pv);
fm << close window;
wait(0); // most likely unnecessary
);
Save Text File("~home/Ptest4.json", As JSON Expr(colpvals));
// NOTE: open JSON file in JMP as "Data (Using Preview)" not best guess.
// top left choose "Stack" (upper right) and "Huge Guess" (under "Guess" pull down)
// File is columns of "responseVar" (data column names), rows are the two p-values
// Transposing in JMP may be desirable.
Re: Send가 'Send'에 액세스하거나 평가할 때 스크립팅 가능한 개체를 기대합니다.결과를 루프 내부의 목록/행렬/다른 데이터 구조로 수집한 다음 루프 외부에 저장하는 작업을 처리해야 합니다.
먼저 교체 모드(기본 모드)를 사용하여 파일을 빈 파일(또는 루프의 첫 번째 주기에서)로 만든 다음 교체 모드 저장 텍스트 파일(경로, 텍스트|BLOB, ) .
아마도 .csv 파일과 열 이름에 헤더를 추가하고 싶을 것입니다.
Names Default To Here(1);
filepath = "$TEMP/test.csv";
dt = Open("$SAMPLE_DATA/Big Class.jmp");
colnames = {"height", "weight"}; // many method of getting these
For Each({colname}, colnames,
fm = dt << Fit Model(
Y(Eval(colname)),
Effects(:age, :sex),
Personality(Standard Least Squares),
Emphasis(Minimal Report),
Run
);
pvals = fm << Get Effect PValues;
// list conversion seems to be necessary for for JSON conversion
// and it is easiest to do here
fm << close window;
If(!File Exists(filepath),
savemode = "replace";
,
savemode = "append"
);
Save Text File(filepath, Char(pvals) || "\!N", mode(savemode));
wait(0); // most likely unnecessary
);
// Web(filepath);
이와 같은 작업을 수행한다면 결과를 JMP 테이블에 수집하고 필요할 경우 정리한 후 원하는 형식으로 저장할 것입니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
colnames = {"height", "weight"}; // many method of getting these
dt_result = Empty();
For Each({colname}, colnames,
fm = dt << Fit Model(
Y(Eval(colname)),
Effects(:age, :sex),
Personality(Standard Least Squares),
Emphasis(Minimal Report),
Run
);
dt_p = Report(fm)[Outline Box("Effect Tests"), Table Box(1)] << Make Combined Data Table(Invisible);
fm << close window;
dt_p << Delete Scripts(dt_p << Get Table Script Names);
If(Is Empty(dt_result),
dt_result = dt_p;
dt_result << Set Name("pvalues");
,
dt_result << Concatenate(Append to first table, dt_p);
Close(dt_p, no save);
);
);
dt_result << show window(1);

그런 다음 이를 사용하여 .csv로 저장할 수 있습니다(또는 소수점 이하 자릿수 데이터가 손실되지 않도록 JMP 테이블로 저장).
dt_result << Save("$TEMP/test.csv");
