여러 열 선택 및 누락 된 열 값 업데이트여보세요,
나는 JMP 스크립팅이 처음이다. 나는 "Censor"라는 단어가 들어있는 여러 칼럼을 잠식하고 누락 된 값을 업데이트하기위한 스크립트 작업을하고 있습니다. 아래는 일련의 샘플 데이터입니다. 저는 Censor A, Censor B, Censor C의 세 열을 나열했습니다. 그러나 현실 세계에서 열의 수는 매번 다를 수 있습니다. 그래서 "Censor"라는 저작을 포함하는 컬럼을 선택해야하고, 누락 된 값을 모두 "S"로 업데이트해야합니다. JSL에서 그렇게 할 수 있습니까? 나는 스릴을 배우는 스크립팅이지만 JMP 도움말에서 길을 찾을 수 없습니다.
| 검열 관 A | 검열 B | 검열 관 C |
| 에프 | | 에프 |
| 에프 | 에프 | |
| 에프 | | |
| | | 에프 |
| | 에프 | 에프 |
| 에프 | | |
다시 : 여러 열 선택 및 누락 된 열 값 업데이트누락 된 셀 채우기를 수행하는 간단한 스크립트가 있습니다.
Names Default To Here( 1 );
// Create a sample data table
dt = New Table( "Example",
Add Rows( 6 ),
New Column( "Censor A",
Character,
"Nominal",
Set Values( {"F", "F", "F", "", "", "F"} )
),
New Column( "Censor B",
Character,
"Nominal",
Set Values( {"", "F", "", "", "F", ""} )
),
New Column( "Censor C",
Character,
"Nominal",
Set Values( {"F", "", "", "F", "F", ""} )
)
);
// Get the names of all of the columns
colNames = dt << get column names( string );
// Loop across all columns and if a Censor column
// then process
For( i = 1, i <= N Items( colNames ), i++,
If( Left( colNames[i], 6 ) == "Censor",
dt << select where( As Column( colNames[i] ) == "" );
// If blanks are found then process
If( N Rows( dt << get selected rows ) > 0,
As Column( colNames[i] )[dt << get selected Rows] = "S"
);
)
);다시 : 여러 열 선택 및 누락 된 열 값 업데이트고맙습니다!다시 : 여러 열 선택 및 누락 된 열 값 업데이트당신의 도움을 주셔서 감사합니다! 여기에 또 다른 질문이 있습니다. 위의 경우 다른 값의 누락 값을 어떻게 업데이트합니까?다시 : 여러 열 선택 및 누락 된 열 값 업데이트여기에 내가 생각하는 것을하기위한 나의 초기 스크립트 수정이있다 .....
Names Default To Here( 1 );
// Create a sample data table
dt = New Table( "Example 2",
Add Rows( 6 ),
New Column( "Censor A",
Character,
"Nominal",
Set Values( {"F", "F", "F", "", "", "F"} )
),
New Column( "Censor B",
Character,
"Nominal",
Set Values( {"", "F", "", "", "F", ""} )
),
New Column( "Censor C",
Character,
"Nominal",
Set Values( {"F", "", "", "F", "F", ""} )
),
New Column( "Setting Column",
Character,
"Nominal",
Set Values( {"Z", "X", "Y", "W", "P", "Q"} )
)
);
// Get the names of all of the columns
colNames = dt << get column names( string );
// Loop across all columns and if a Censor column
// then process
For( i = 1, i <= N Items( colNames ), i++,
If( Left( colNames[i], 6 ) == "Censor",
dt << select where( As Column( colNames[i] ) == "" );
// If blanks are found then process
rowMat = dt << get selected rows;
If( N Rows( rowMat ) > 0,
For( k = 1, k <= N Rows( rowMat ), k++,
Column( colNames[i] )[rowMat[k]] = :Setting Column[rowMat[k]]
)
);
)
);