你好!
我目前正在使用 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>