한 번만 열 데이터 조작여보세요!
나는 맥스 전류 밀도 (Max Current Density)를 얻기 위해 데이터의 칼럼 (Max Currents)을 100으로 곱하는 문제가있다. 그래서 스크립트를 실행할 때 괜찮다.
기둥 ( 13 ) << 값을 설정하다 ( ( 기둥 ( 13 ) << 행렬로 얻다. ) * 100 ) ;
기둥 ( 13 ) << 세트 이름 ( "최대 Jc (mA / um ^ 2)" ) ;
하지만 스크립트를 여러 번 실행하면 데이터를 100 배로 늘리면 데이터 테이블을 닫고 다시 열어야합니다.
한 번만 업데이트 할 수있는 방법이 있습니까?
감사,
타일러
Re : 한 번만 열 데이터 조작기준 @pmroz 님의 입력 내용을 변경하려면 다음과 같이 코드를 변경해야합니다.
//define columns to search for
colSearch1 = "Corrected Area";
colSearch2 = "Max Ic";
// Get Column Names from the data table
ColNames = dt << Get Column Names("string");
//search for desired columns
colNum1 = Contains(ColNames,colSearch1);
colNum2 = Contains(ColNames,colSearch2); 이제 colNum1 및 colNum2에 대한 참조가 필요합니다. 또는 @pmroz 설명했다 :
Col1 = column(dt,"Corrected Area") ;
Col2 = column(dt,"Max Ic") ;
Re : 한 번만 열 데이터 조작한 번 열 이름을 가져와야합니다. 그러면 열 이름이 목록으로로드됩니다.
그러나 이름을 사용하여 직접 열을 참조 할 수도 있습니다.
열 (dt, " 최대 Ic (mA) ") 허용 가능한 구조입니다.
Re : 한 번만 열 데이터 조작그래서 필자는 두 칼럼을 읽어야한다.
간단한 2 변수 분석 : 지금은 작동하지 않습니다! 다시 한번 감사드립니다.
도움과 안내!
// 검색 할 열 정의
colSearch1 = "보정 된 영역";
colSearch2 = "최대 Ic";
// 관심 항목 가져 오기
Col1 = dt << * 열 이름 가져 오기 (* "수정 된 영역"*) *;
Col2 = dt << * 열 이름 가져 오기 (* "Max Ic"*) *;
// 원하는 열을 검색합니다.
colNum1 = 포함 * (* Col1, colSearch1 *) *;
colNum2 = 포함 * (* Col2, colSearch2 *) *;
// column (13) << set values ((Column (13) << 행으로 가져옴) * 100);
// column (13) << set name ( "Max Jc (mA / um ^ 2)");
Column1 = Column * (* dt, colNum1 *) * << * 설정 값 (* * (* Column1 << * get as
매트릭스) * ** 100) *;
Column1 << * set name (* "Max Jc (mA / um ^ 2)"*) *;
Column2 = Column * (* dt, colNum2 *) *;
닫기 * (* dt, 저장 * (파일 경로)); *
// 이변 수 (두 변수) 분석을 위해 CreateBivariate 호출 \
status = List * (0 *, * 0) *;
새 창 * (* "사용자 지정 분석",
H 목록 상자 * (*
V 목록 상자 * (*
패널 박스 * (* "컨트롤",
텍스트 상자 * (* "분석 선택"*) *,
선택 = 확인란 * ({* "분포", "맞춤 선"*} *,
current = choice << * Get (1) *;
// xParam = Column (9);
// yParam = Column (13);
xParam = Column1;
yParam = Column2;
* (* 현재 *, * (* 상태 * [** 1] * *) * *) *,
dt << * Append (*
dt = V 목록 상자 * (*
bivDistribution = 배포 * (*
Y * (* Eval * (* yParam *) * *) *,
X * (* Eval * (* xParam *) * *) *,
*) *;
*) *
Re : 한 번만 열 데이터 조작 @ tylerram93 ,
이렇게해야합니다.
// Open Sample Data Table
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Define Column To Search For
ColToSearch = "age";
// Get Column Names
ColNames = dt << Get Column Names("String");
// Search if the desired column names exists
ColNum = Contains(ColNames,ColToSearch);
// Get Reference to desired Column
Col = Column(dt,ColNum);
// Alternatively
Col(ColNum) // Also refers to your desired column Re : 한 번만 열 데이터 조작그것은 완벽하게 작동했습니다! 감사!
후속 질문 :
이름을 기반으로 열을 선택하는 방법이 있습니까? 따라서 Column (13)을 사용하는 대신 "Max Ic (mA)"가있는 열을 검색 할 수 있습니다.
감사,
타일러
Re : 한 번만 열 데이터 조작안녕하세요 @ tylerram93 :
이 문제를 해결하는 간단한 방법은 스크립트가 끝날 때 테이블이 닫혀 있는지 확인하는 것입니다. 원시 데이터가 일관성이있는 한, 스크립트를 실행하고 끝에 저장하고 닫는 횟수에 관계없이 다음과 같이 곱셈은 한 번만 발생해야합니다.
테이블을 닫지 않으면 테이블을 반복적으로 수정하고 있다고 생각합니다.
경우에 - 귀하의 질문에 오해했습니다 - 테스트 데이터 세트 및 테스트 스크립트를 붙여주십시오.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
column(4) << set values( (Column(4) << get as matrix) *100);
column(4) << set name("Max Jc (mA/um^2)");
Close(dt,Save(FilePath));
베스트
우디