你好!
我目前正在使用 JMP/JSL 開發一個項目,對於我的數據,我需要根據條件刪除或清除多個單元格中的值。 請參閱下面的範例原始資料和所需的輸出。
原始數據:
| 測試1 | 功率/功率 1 | 測試2 | 功率/功率2 | 測試3 | 功率/功率 3 | 測試4 | 功率/功率 4 | 測試5 | 功率/功率5 |
| 1 | 磷 | 2 | 磷 | 4 | 磷 | 9 | F | 3 | 磷 |
| 5 | 磷 | 8 | F | 4 | 磷 | 6 | F | 2 | 磷 |
| 7 | 磷 | 1 | 磷 | 6 | F | 5 | F | 6 | F |
| 4 | 磷 | 1 | 磷 | 9 | F | 9 | F | 9 | F |
| 6 | F | 4 | 磷 | 10 | F | 10 | F | 8 | F |
所需輸出:
| 測試1 | 功率/功率 1 | 測試2 | 功率/功率2 | 測試3 | 功率/功率 3 | 測試4 | 功率/功率 4 | 測試5 | 功率/功率5 |
| 1 | 磷 | 2 | 磷 | 4 | 磷 | 9 | F | * | * |
| 5 | 磷 | 8 | F | * | * | * | * | * | * |
| 7 | 磷 | 1 | 磷 | 6 | F | * | * | * | * |
| 4 | 磷 | 1 | 磷 | 9 | F | * | * | * | * |
| 6 | F | * | * | * | * | * | * | * | * |
這裡需要的是一旦觸發 1st F(失敗)就清除所有後續儲存格。
我正在研究大數據,我相信這只能透過腳本來完成。
嘗試過循環函數,但到目前為止還沒有起作用。 我真的不確定這在 JSL 上是否可行。
預先感謝您的幫忙!
看看這是否適合你。
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>