수식 열을 변수로 변경하는 방법중간 결과로 첫 번째 수식 열을 사용하고 있습니다. 다시 계산하려면 결론적으로 두 번째 공식 칼럼이 나온다. 두 번째 열은 첫 번째 수식 열의 결과를 사용합니다.
예를 들어 varaibele을 작성하여 첫 번째 수식 열을 피할 수있는 쉬운 방법이 있습니까? 나의 JSL 놀놀지는 매우 기본입니다.
미리 감사드립니다.
Re : 수식 열을 변수로 변경하는 방법?답장을 보내 주셔서 감사합니다.
당신이 나를 결합하는 법을 보여줄 수 있습니까? col quantile () 행 함수와 행렬 버전?
Re : 수식 열을 변수로 변경하는 방법?If satement 수식이 NewDataCorr 값을 얻기 위해 매우 잘 작동한다고 말했듯이.
새 열로 파일을 업데이트했습니다 : NewDataCorr 2. 이 열에는 If 문 수식이 사용되었습니다. DataTmp 열의 값을 사용하는 대신 DataTmp 수식으로 표현했습니다.
(: P1 == 0 & : P2
이면,
: DataRaw
)
이 경우 DataTmp 열을 제거합니다. 이 솔루션에 대한 귀하의 의견은 무엇입니까?
Re : 수식 열을 변수로 변경하는 방법?Cameron의 솔루션은 100K + 행에서도 매우 빨라야합니다.
col quantile () 함수를 사용하는 또 다른 한 가지는 데이터 테이블 수식의 각 행에 대해 평가를 얻습니다. 행렬 버전에서는 한 번만 평가됩니다.
Re : 수식 열을 변수로 변경하는 방법?example.jmp 파일을 업로드했습니다. 내 구체적인 질문은, w hat은 컬럼 생성을 피하는 가장 좋은 방법입니다 : DataTmp와 : FlyerTmp : 컬럼을 얻기 위해서 : DataCorr : P1, : P2 그리고 : DataRaw?
JSL 사용자에 따르면, 특히 데이터 세트가 큰 경우에는 목록이나 마트를 사용하여이 열을 계산하는 것이 좋습니다.
Re : 수식 열을 변수로 변경하는 방법?JSL 제안을 가져 주셔서 감사합니다. 스크립트를 테스트하는 것이 궁금합니다. 지금 나는 tihis (JMP에 접근 할 수 없음)를 확인할 수 없다.
데이터 포인트가 원점 (Column DataRaw)이 0 인 경우 데이터 포인트 처리 방법이 궁금합니다.
Re : 수식 열을 변수로 변경하는 방법?답장을 보내 주셔서 감사합니다.
가능한 한 간단하게 데이터 세트를 유지하기 위해 tmp 컬럼을 없애고 싶습니다. 예제 파일은 내 질문과 관련된 매우 기본적인 파일입니다. 실제 데이터 세트에는 약 10 ~ 15 개의 서로 다른 DataRaw 열이 포함되어 있으며, 동일한 방식으로 준비하고 있습니다. 다른 여러 열이 추가되었습니다.
FlyerTmp 열에 대해 당신이 맞습니다. DataCorr 열에 포함될 수 있습니다. 나중에 (JMP에 대한 액세스 권한이 없음) 나중에 파일을 점검 할 것입니다.
Re : 수식 열을 변수로 변경하는 방법?뭔가 생각 만 했어. quantile을 계산하기 전에 temp에서 zero를 제거해야합니다. zero가 포함되기 때문입니다. x98 전에 실행하면됩니다.
miss_rows = loc(as list(temp),0);
temp[miss_rows] = .;
새 열을 만들기 전에 "final"에 대해서도 동일한 작업을 수행 할 수 있습니다. 결국에는 누락 된 값을 대체 할 필요가 없어집니다.
Re : 수식 열을 변수로 변경하는 방법?샘플 데이터 테이블을 게시 해 주셔서 감사합니다.
일부 행에 대해서만 quantile을 계산하려면 새 수식 기] 열이 있어야합니다. dataTmp로 이미 그렇게하고 있기 때문에 계속 진행하는 것이 좋습니다. 그러나 flyerTmp는 dataCorr에서 사용하는 조건이므로 필요하지 않습니다. 이 조건을 직접 dataCorr에 넣을 수 있습니다.
100,100 개의 행이있는 첨부 된 데이터 테이블에서이 작업을 수행했습니다. 꽤 빠릅니다.
나는 왜 당신이 중간 칼럼을 제거하는 것에 대해 우려하고 있는지 궁금합니다. 지적 호기심이나 다른 관심사?
Re : 수식 열을 변수로 변경하는 방법?이런 식으로 해보십시오. 아이디어는 논리적 인 조건 인 부울 값의 벡터로 데이터를 요소별로 곱하는 것입니다. 이것은 꽤 빨라야하지만, 나는 계산적으로 가장 효율적인 것에 대한 전문가와는 거리가 멀다는 것을 인정한다.
dt = Current Data Table();
//Get values for other columns
raw = dt:DataRaw << Get Values;
P1vals = dt:P1 << Get Values;
P2vals = dt:P2 << Get Values;
//Compute equivalent of DataTmp
temp = (P1vals == 0 & P2vals < 3):*raw;
//Compute 98th percentile of temp
x98 = quantile(0.98, temp);
//Compute final column
final = (temp <= x98):*temp;
dt << New Column("DataCorr", << Set Values(final));결과에는 누락 대신 0이 있습니다. 누락 된 값으로 대체 할 수 있습니다 (테이블에 원본 DataCorr이있는 경우 이전 스크립트에서 "DataCorr 2"열을 생성하고이 코드 줄은 오른쪽 열에서 작동하지 않음).
//Replace 0s with missing
dt:DataCorr[dt << Get Rows Where(:DataCorr == 0)] = .;
Re : 수식 열을 변수로 변경하는 방법?안녕하세요 카메론 ,
example.jmp 파일을 첨부했습니다. 열을 생성하지 못하게하는 가장 좋은 방법은 무엇입니까? DataTmp 및 : FlyerTmp : 열을 가져 오려면 : DataCorr : P1, : P2 및 : DataRaw?
이는 100,000 개가 넘는 행이있는 데이터 세트에 적용 할 수 있습니다.
도마
Re : 수식 열을 변수로 변경하는 방법?몇 가지 세부 사항 만 확인하면됩니다.
1. 첫 번째 열의 모든 행에 대해 동일한 값입니까?
2. 열의 추가를 스크립팅하고 있습니까?
- 가능한 한 첫 번째 결과를 메모리에 계산하여 매트릭스의 단일 열로 계산 한 다음 해당 값을 원하면 매트릭스에서 가져 와서 해당 값으로 새 열을 만듭니다. 종종 이것은 열을 추가하고 테이블의 업데이트를 위해 (실제로 키가 큰 테이블의 경우) 더 빠릅니다.
- 그럼에도 불구하고 두 계산을 모두 행렬 (메모리가 아닌 테이블에 있음)에서 수행 한 다음 결과를 다시 테이블에 게시하십시오.
- 모든 값이 열 1에서 동일한 경우 스크립트에서이 값을 계산하여 테이블로 데이터 테이블에 추가하십시오.
변수를 참조하고 2 열의 변수를 참조하십시오.
좋은 옵션이 많이 있지만, 모두 당신이하려고하는 것에 달려 있습니다.
Re : 수식 열을 변수로 변경하는 방법?보다 정확한 도움말을 원하면 실례를 게시해야합니다.
Re : 수식 열을 변수로 변경하는 방법?솔루션을 가져 주셔서 감사합니다. 그것은 작동합니다. 그러나 이로 인해 일부 수식이 수식 내에서 사용되는 경우 계산 속도가 느려질 수 있습니다.
Re : 수식 열을 변수로 변경하는 방법?첫 번째 열의 수식을 복사하여 첫 번째 열을 참조 할 때마다 두 번째 열의 수식에 붙여 넣을 수 있습니까?