우아한 방식으로 많은 열에 수식을 설정하는 방법<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕 얘들아,
누군가 아래 질문으로 나를 도울 수 있습니까?
아래와 같이 긴 수식을 피하고 싶습니다. (각 요소는 열 이름입니다!)
Column("Std")<<열 속성 추가(
공식(
표준 개발(
:F23m A,:F23m C,:F23m H,:F23 MA,:F23 MC,:F23 MH,:F23 NA,:F23 NC,:F23 NH,
:F30m A,:F30m C,:F30m H,:F30 MA,:F30 MC,:F30 MH,:F30 NA,:F30 NC,:F30 NH,
:F36 m A,:F36 m C,:F36 m H,:F36 MA,:F36 MC,:F36 MH,:F36 NA,:F36 NC,:F36 NH,
:F37 m A,:F37 m C,:F37 m H,:F37 MA,:F37 MC,:F37 MH,:F37 NA,:F37 NC, :F37 NH,
:F49m A,:F49m C,:F49m H,:F49 MA,:F49 MC,:F49 MH,:F49 NA,:F49 NC, :F49 NH,
:F53 m A,:F53 m C,:F53 m H,:F53 MA,:F53 MC,:F53 MH,:F53 NA,:F53 NC, :F53 NH,
:F87 m A,:F87 m C,:F87 m H,:F87 MA,:F87 MC,:F87 MH,:F87 NA,:F87 NC, :F87 NH ) ) );
건배,
단
Re: 여러 열에 수식을 우아하게 설정하는 방법위의 두 솔루션 모두 작동하지만 Ron의 솔루션의 경우 공식은 전역 변수가 colnames 예를 들어 JMP 세션이 닫힐 때 재정의되거나 지워집니다.
다음은 두 가지 접근 방식을 비교하는 몇 가지 코드입니다.
dt = 열려 있는 ( "$SAMPLE_DATA/빅 클래스.jmp" ) ;
colnames = dt << 열 이름 가져오기 ;
// Ron의 접근 방식: 공식의 변수가 평가되지 않음
dt << 새 열 ( "표준" , 공식 ( 표준 개발 ( colnames [ 4 :: 5 ]))) ;
// Ian의 접근 방식: 공식을 설정하기 전에 평가된 변수
공식 = 평가 Expr ( 표준 개발 ( 특급 ( colnames [ 4 :: 5 ]))) ;
dt << 새 열 ( "표준2" , 공식 ( 이름 Expr ( 공식 ))) ;
// 로그의 수식 비교
인쇄 ( : 표준 << 공식을 얻다 , 표준2 << 공식을 얻다 ) ;
//변수 정의를 지우고 행을 추가합니다. Std2만 변경 사항을 인식합니다.
전역 지우기 () ;
현재 데이터 테이블 () << 사슬 같이 잇다 (
열려 있는 ( "$SAMPLE_DATA/Students2.jmp" ) ,
첫 번째 테이블에 추가
) ;
Re: 여러 열에 수식을 우아하게 설정하는 방법안녕 댄크77 ,
이안@JMP 의 솔루션이 맞습니다. 그러나 덜 엄격한 것을 찾고 있다면 다음을 시도해 볼 수 있습니다.
수식에 필요한 열이 모두 범위에 있다고 가정하면 다음과 같이 첫 번째와 마지막의 수를 도입할 수 있습니다.
dt = 열려 있는 ( "$SAMPLE_DATA/빅 클래스.jmp" ) ;
colnames = dt << 열 이름 가져오기 ;
안부 = dt << 새 열 ( "표준" ) ;
안부 << 공식 설정 ( 표준 개발 ( colnames [ 4 :: 5 ] )) ;
베스트,
론
Re: 여러 열에 수식을 우아하게 설정하는 방법이 코드는 현재 선택된 열을 사용하므로 입력할 필요가 없다는 점에서 '회피'합니다. 그게 당신이 추구하는 것입니까?
'파일 > 새로 만들기 > 새 스크립트'를 수행하고 JSL을 잘라내어 붙여넣은 다음 '편집 > 스크립트 실행'을 수행합니다.
NamesDefaultToHere ( 1 ) ;
// 테이블을 만든다
체크 안함 = 30 ;
dt = 새 테이블 ( "테스트" ) ;
~을 위한 ( 씨 = 1 , 씨 <= 체크 안함 , 씨 ++,
dt << 새 열 ( "안부" || 숯 ( 씨 ) , 숫자 , 마디 없는 , 공식 ( 랜덤노멀 ())) ;
) ;
dt << 행 추가 ( 100 ) ;
// 열의 절반을 선택합니다.
N = 둥근 ( 체크 안함 / 2 ) ;
씨 = 랜덤 인덱스 ( 엔콜 ( dt ) , N ) ;
~을 위한 ( 나 = 1 , 나 <= N , 나 ++,
열 ( dt , 씨 [ 나 ]) << setSelected ( 1 ) ;
) ;
// 이 코드를 실행하여 테이블에서 현재 선택된 열의 표준 편차에 대한 새 수식 열을 만듭니다.
선택 = dt << getSelectedColumns ;
addCol = 특급 ( dt << 새 열 ( "표준 데브" , 숫자 , 마디 없는 , 공식 ( 표준 개발 ( colsTBD )))) ;
대체하다 ( addCol , 특급 ( colsTBD ) , 평가 ( 선택 )) ;
addCol ;