我正在寻找完成一个简单的查找和替换。 我正在构建一个更大的脚本,并想将一些文本替换为空白。 我试过循环和芒格函数,但似乎我在网上找到的所有示例都比我需要的更复杂。 我附上了我的数据集。 我基本上想在整个表格中搜索“< LOD”并将其替换为空白。 此外,我想对“---”做同样的事情。 最后,我想在删除文本后使用脚本将列更改为数字/连续。
谢谢您的帮助!
我想我今天课程的主题是“少即是多”。 谢谢。 那(再次)完美地工作。
很多时候,如果您只是指定使用“按组”,则可以消除按组的具体信息,让 JMP 确定要使用的内容。下面的脚本很好用,没有任何混乱
Bubble Plot(
X( :RT1 ),
Y( :RT2 ),
Sizes( :Area ),
Coloring( :Group ),
Title Position( 0, 0 ),
By( :Sample ID )
);
谢谢,该脚本运行良好。
附带说明一下,(如果我必须为此开始一个新的讨论线程,请告诉我)但是根据我之前附加的数据,我正在尝试使用脚本制作气泡图。 我可以交互地执行所有操作,然后复制脚本,但是它特定于第一列中的样本 ID 名称。 我会将此脚本与许多不同的数据表一起使用,数据的布局将始终相同,但是,文件中包含的样本数量和样本 ID 会发生变化。 是否有一种简单的方法来修改下面的脚本以用于任何示例 ID,而不是说“CM172-001”。
Bubble Plot(
SendToByGroup( {:Sample ID == "CM172-001"} ),
X( :RT1 ),
Y( :RT2 ),
Sizes( :Area ),
Coloring( :Group ),
Title Position( 0, 0 ),
By( :Sample ID ),
SendToByGroup(
{:Sample ID == "CM172-001"},
SendToReport(
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-001"},
"1",
ScaleBox,
{Min( 11 ), Max( 22 ), Inc( 2 ), Minor Ticks( 1 )}
),
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-001"},
"2",
ScaleBox,
{Min( 2.84 ), Max( 2.97 ), Inc( 0.02 ), Minor Ticks( 1 )}
)
)
),
SendToByGroup(
{:Sample ID == "CM172-002"},
SendToReport(
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-002"},
"1",
ScaleBox,
{Min( 10 ), Max( 35 ), Inc( 5 ), Minor Ticks( 1 )}
),
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-002"},
"2",
ScaleBox,
{Min( 2.8 ), Max( 3.7 ), Inc( 0.1 ), Minor Ticks( 0 )}
)
)
),
SendToByGroup(
{:Sample ID == "CM172-003"},
SendToReport(
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-003"},
"1",
ScaleBox,
{Min( 11 ), Max( 22 ), Inc( 2 ), Minor Ticks( 1 )}
),
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-003"},
"2",
ScaleBox,
{Min( 2.83 ), Max( 2.96 ), Inc( 0.02 ), Minor Ticks( 1 )}
)
)
),
SendToByGroup(
{:Sample ID == "CM172-004"},
SendToReport(
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-004"},
"1",
ScaleBox,
{Min( 10 ), Max( 30 ), Inc( 5 ), Minor Ticks( 1 )}
),
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-004"},
"2",
ScaleBox,
{Min( 2.6 ), Max( 3.6 ), Inc( 0.2 ), Minor Ticks( 1 )}
)
)
),
SendToByGroup(
{:Sample ID == "CM172-005"},
SendToReport(
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-005"},
"1",
ScaleBox,
{Min( 10 ), Max( 30 ), Inc( 5 ), Minor Ticks( 1 )}
),
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-005"},
"2",
ScaleBox,
{Min( 2.7 ), Max( 3.7 ), Inc( 0.2 ), Minor Ticks( 1 )}
)
)
)
);这是一段简单的代码,可以找到您要更改的值,更改它们,然后将列设置为数字和连续
Names Default To Here( 1 );
dt = Current Data Table();
colList = dt << get column names( character, string );
For( i = 1, i <= N Items( colList ), i++,
selRows = dt << get rows where(
Column( dt, colList[i] )[Row()] == "< LOD" | Column( dt, colList[i] )[Row()] == "---"
);
If( N Rows( selRows ) > 0,
Column( dt, colList[i] )[selRows] = "";
Column( dt, colList[i] ) << data type( "numeric" ) << modeling type( "continuous" );
);
);
好吧,那就省去了一步! 谢谢您的帮助。 容易多了。
如果将数据类型从字符更改为数字,则像“
Names Default to Here( 1 );
dt = New Table( "test",
New Column( "data",
Character, Nominal,
Values( { "3.1", "4.5", "<LOD></LOD>回复:简单的查找和替换我很欣赏谨慎的话,但是,我只是将数据用于绘制指纹图,我们对未检测到该化合物这一简单事实很感兴趣。 对于任何统计分析,我们将根据提供的检测限估算 ND 值。
与您的脚本问题分开,用空白替换 审查. 您应该使用处理删失数据和精确数据的估算器。