여러 열의 최대값을 찾기 위해 수식 열을 만드는 방법<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />여러 개의 숫자 데이터 열(아래 예 참조)이 있고 열 전체에서 각 행의 최대값을 찾기 위해 수식 열을 만들고 싶습니다.어떤 도움이라도 주시면 감사하겠습니다.감사합니다!
값 1 값 2 값 3 최대 값(이 열에 공식을 입력하겠습니다)
1 9 6 9
2 1 5 5
3 7 4 7
4 2 6 6
Re: 여러 열의 최대값을 찾기 위해 수식 열을 만드는 방법이유는 잘 모르겠지만 txnelsons 코드가 작동하지 않았습니다.
디버깅 후 마지막 줄을 다음과 같이 변경해야 했습니다.
namelist[ Loc( as list(maxes`), Max( maxes ) )[1] ];
이제 효과가 있는 것 같아
Re: 여러 열의 최대값을 찾기 위해 수식 열을 만드는 방법다음은 최대 열의 열 이름을 표시하는 간단한 예입니다.
Names Default To Here( 1 );
// Open Data Table: semiconductor capability.jmp
// → Data Table( "semiconductor capability" )
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
dt << New Column( "Example",
character,
formula(
If( Row() == 1,
namelist = {"NPN1", "NPN2", "NPN3", "NPN4"}
);
maxes = [];
For( i = 1, i <= N Items( namelist ), i++,
maxes = maxes || Matrix( Column( namelist[i] )[Row()] )
);
If( Row() <= 5,
Show( maxes )
);
namelist[Loc( maxes, Max( maxes ) )[1]];
)
);
Re: 여러 열의 최대값을 찾기 위해 수식 열을 만드는 방법이는 비합리적일 수 있지만 최대 열의 <값>이 아니라 최대 값이 있는 열의 <열 이름>이 되는 열 수식은 무엇입니까?티아
Re: 여러 열의 최대값을 찾기 위해 수식 열을 만드는 방법@txnelson 당신은 마법사입니다! 도와 주셔서 감사합니다.
Re: 여러 열의 최대값을 찾기 위해 수식 열을 만드는 방법귀하의 예에서 구성한 구문은 작동하지 않습니다. 그러나 제가 알아낸 바에 따르면 열 목록 전체에서 최대값을 포함하는 새 열을 생성하려고 한다는 것입니다.다음과 같은 수식에 지정된 코드
:a * 2 + :p</img>
수식에 대해 원하는 실제 리터럴 문자열로 입력되어야 합니다.JMP는 생성되는 새 열에 전달되기 전에 수식에서 JSL을 평가하지 않습니다.그러므로 자신이 사용하고 싶은 공식이 완전히 실현되어야 합니다.그리고 코드에서는 동적이어야 합니다. 이를 위해서는 JSL에서 수식 문을 만든 다음 수식에 전달해야 합니다.
다음은 이를 수행하는 한 가지 방법을 보여주는 스크립트입니다.
names default to here(1);
dt = Current Data Table();
// The formula that needs to be passed into the new column JSL needs
// to look like
// Max( :NameA, :UniqueX, :Name bb )
// A literal string of ":NameA, :UniqueX, :Name bb" needs to be created
// and then plugged into the JSL and then executed
// ":NameA, :UniqueX, :Name bb" is just an illustration, what the
// make up of the string needs to be derived from the actual column
// names in the data table
FreqList = dt << get column names( string, numeric );
freqString = "";
// build the JSL in the form that is required for the formula
For( i = 1, i <= N Items( FreqList ), i++,
If(
Contains( FreqList[i], "Unique" ) == 1 |
Contains( FreqList[i], "Name" ) == 1,
If( i==1, delim = "", delim = ",");
freqString = freqString || delim || " :" || FreqList[i]
)
);
// Run the command, passing into the formula the command string developed above
Eval( Parse( "dt << New Column (\!"Freq\!", numeric, Formula( Max( " || freqString || " )));" ) );
Re: 여러 열의 최대값을 찾기 위해 수식 열을 만드는 방법@txnelson 비슷한 문제가 있습니다. 여러 열의 최대값을 얻고 싶습니다. 내 예에는 FreqList라는 열 목록이 있습니다. 다음과 비슷한 공식을 사용하여 만든 것입니다.
dt = current data table();
FreqList = dt << get column names( string, numeric );
For( i = N Items( FreqList ), i >= 1, i--,
If( Contains( FreqList[i], "Unique" )== 0,
FreqList= Remove( FreqList, i, 1 ),
Contains( FreqList[i], "Name" )== 0,
FreqList = Remove( FreqList, i, 1 )
)
);
// Then I was thinking something like the following should work,
dt << New Column ("Freq", numeric, Formula(Col Max(FreqList)));제가 수동으로 수행하는 방법은 "Freq"라는 새 열을 만드는 것입니다. 그런 다음 행을 기준으로 최대 주파수를 갖는 새 열을 생성하는 Maximum(:Freq1,:Freq2,:Freq3,FreqN)과 같은 수식을 만듭니다.
JSL에서는 어떻게 해야 합니까?
Re: 여러 열의 최대값을 찾기 위해 수식 열을 만드는 방법님이 질문하신 내용은 @adampaulsmith 그리고 대답했다 @pmroz 결과 열에 대해 정의된 수식에서 Maximum() 함수를 사용합니다.수식은 자동으로 각 행을 반복하여 수식을 적용합니다.따라서 행 참조를 작성할 필요가 없습니다.
그러나 공개 JSL에서 이를 사용하는 경우 열 참조에 아래 첨자를 추가하여 처리하는 행을 나타낼 수 있습니다.
For( theRow = 1, theRow <= 10, theRow++,
:MaxValue[theRow] = Maximum( :Value 1[theRow], :Value 2[theRow], :Value 2[theRow] );
);
스크립팅 가이드에서 JSL에 대한 문서를 참조하세요.
도움말==>도서==>스크립팅 가이드
Re: 여러 열의 최대값을 찾기 위해 수식 열을 만드는 방법검색하려는 행이 많은 경우 함수에 모든 행을 입력하는 대신 행 범위를 선택하는 기능이 있습니까?
Re: 여러 열의 최대값을 찾기 위해 수식 열을 만드는 방법감사해요 ! 나는 그것이 단순한 것이어야 한다는 것을 알았습니다.
Re: 여러 열의 최대값을 찾기 위해 수식 열을 만드는 방법그만큼 최대() 함수 당신을 위해 이것을 할 것입니다.
Maximum(:Value 1, :Value 2, :Value 3)