안녕!
현재 JMP/JSL을 사용하는 프로젝트를 진행 중인데 내 데이터에서 조건에 따라 여러 셀의 값을 삭제하거나 지워야 합니다. 아래에서 샘플 원시 데이터 및 필수 출력을 참조하세요.
원시 데이터:
| 테스트1 | P/F 1 | 테스트2 | P/F 2 | 테스트3 | P/F 3 | 테스트4 | P/F 4 | 테스트5 | P/F 5 |
| 1 | 피 | 2 | 피 | 4 | 피 | 9 | 에프 | 삼 | 피 |
| 5 | 피 | 8 | 에프 | 4 | 피 | 6 | 에프 | 2 | 피 |
| 7 | 피 | 1 | 피 | 6 | 에프 | 5 | 에프 | 6 | 에프 |
| 4 | 피 | 1 | 피 | 9 | 에프 | 9 | 에프 | 9 | 에프 |
| 6 | 에프 | 4 | 피 | 10 | 에프 | 10 | 에프 | 8 | 에프 |
필수 출력:
| 테스트1 | P/F 1 | 테스트2 | P/F 2 | 테스트3 | P/F 3 | 테스트4 | P/F 4 | 테스트5 | P/F 5 |
| 1 | 피 | 2 | 피 | 4 | 피 | 9 | 에프 | * | * |
| 5 | 피 | 8 | 에프 | * | * | * | * | * | * |
| 7 | 피 | 1 | 피 | 6 | 에프 | * | * | * | * |
| 4 | 피 | 1 | 피 | 9 | 에프 | * | * | * | * |
| 6 | 에프 | * | * | * | * | * | * | * | * |
여기서 필요한 것은 1st F(실패)가 트리거되면 다음 셀을 모두 지우는 것입니다.
저는 대규모 데이터 작업을 하고 있는데 이 작업은 스크립팅을 통해서만 가능하다고 생각합니다.
루핑 기능을 시도했지만 지금까지는 작동하지 않습니다. 이것이 JSL에서도 가능한지 잘 모르겠습니다.
당신의 도움에 미리 감사드립니다!
정말 문제가 해결되었습니다!!! 명성!
또한 수천 개의 셀에 대해 1초도 채 안 걸리는 속도에 놀랐습니다.
감사해요!!
이것이 당신에게 효과가 있는지 확인하십시오.
Names default to here(1);
dt = New Table( "Example",
Add Rows( 5 ),
New Column( "Test1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [1, 5, 7, 4, 6] )
),
New Column( "P/F 1",
Character( 16 ),
"Nominal",
Set Values( {"P", "P", "P", "P", "F"} )
),
New Column( "Test2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [2, 8, 1, 1, 4] )
),
New Column( "P/F 2",
Character( 16 ),
"Nominal",
Set Values( {"P", "F", "P", "P", "P"} )
),
New Column( "Test3",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [4, 4, 6, 9, 10] )
),
New Column( "P/F 3",
Character( 16 ),
"Nominal",
Set Values( {"P", "P", "F", "F", "F"} )
),
New Column( "Test4",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [9, 6, 5, 9, 10] )
),
New Column( "P/F 4",
Character( 16 ),
"Nominal",
Set Values( {"F", "F", "F", "F", "F"} )
),
New Column( "Test5",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [3, 2, 6, 9, 8] )
),
New Column( "P/F 5",
Character( 16 ),
"Nominal",
Set Values( {"P", "P", "F", "F", "F"} )
)
);
bad_rows = [];
for(i=1, i<=ncols(dt), i++,
col = Column(dt, i);
if(col << Get Data Type == "Character", //this is an assumption that your P/F cols are the only char
if(nrows(bad_rows), //check if there's anything to clear
col[bad_rows] = ""; // clear character
);
bad_rows |/= loc(col <<GET values=""></GET>