将列从字符转换为数字时遇到问题<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />大家好,
这是我的第一篇文章 - 我正在尝试自动化数据处理,其中我接收 Excel 电子表格形式的数据...... 工作簿中有一个选项卡包含所有相关信息。
JMP 似乎将大量数据导入为字符,而不是数字,我可以在表中手动将数据转换为数字(通常方式),但不能使用脚本:
有任何想法吗?
谢谢
汤姆
设置当前目录("C:\JDSU\ServerCopy\Data\Post-processing characterment\Flash IV\AWSC");
dt=打开(); // 这是我发现让我在 .xls 文件中选择相关工作表“数据排序”的唯一方法
表= ntable();
OpenDTs = List();
保存这个=列表();
关闭这些=列表();
显示(dt);
/* 我认为这个循环可以消除我不想要的打开的表,但它只关闭一些而不是全部不需要的表
for(i=1, i<=表, i++,
插入( openDTs, 数据表(i)<
IF(数据表(i)<
继续();
关闭(数据表(i));
);
);
*/
dt<<删除行({1,2,3,4,5,6,7,8,9}); // 前九行不是数据 - 有没有办法在 open() 命令中捕获它?
列(1)<<集合名称(“晶圆ID”);
列 (2)<<设置名称("Xref-Yref");
列(3)<<设置数据类型(“数字”); // 这不起作用......
//列({3,4,5,6,7,8,9,10,11,12,13}) <<设置数据类型(数字); //这也不是
col = New COlumn("FF_Calc", numeric);
col<<设置公式(:vmp *:imp /:Voc /:Isc); // 这会返回错误,因为我无法将有问题的列更改为数字。
col = 新列(“外部参照”,字符);
col = 新列(“yref”,字符);
列(“voc”)<<设置数据类型(“数字”); //还是不行
回复:将列从字符转换为数字时遇到问题在使用列公式之前,您需要“运行”它们。将此行放在 for each row 语句之前:
dt<<运行公式;
其中dt指向您的数据表。
回复:将列从字符型转换为数值型时遇到问题汤姆,我觉得你应该把这个帖子重新发到 JMP 论坛上。
艺术
回复:将列从字符型转换为数值型时遇到问题将字符列更改为数值列的正确语法示例:
column("voc") << 数据类型( 数值 );
column("voc") << Modeling Type( continuous ); // 如果您想要连续建模类型
或者
dt:voc << 等等...
看起来你的“if”语句中的“continue”后面需要一个逗号……
回复:将列从字符型转换为数值型时遇到问题非常感谢。
你知道为什么在 JSL 窗口中选中一行文本然后按 Ctrl+R 运行 for each row() 循环可以正常工作,但作为整个脚本的一部分执行时却不行吗?
col = New COlumn("FF_Calc", numeric) << Modeling Type ( continuous );
col<
新建列("xref", 字符, 序数, 公式(如果(右(左(:名称("Xref-Yref"), 2), 1) == "-", 左(:名称("Xref-Yref"), 1), 左(:名称("Xref-Yref"), 2))), 设置属性("值排序", {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16"}));
新建列("yref", 字符, 序数, 公式(如果(左(右(:Name("Xref-Yref"), 2), 1) == "-", 右(:Name("Xref-Yref"), 1), 右(:Name("Xref-Yref"), 2))), 设置属性("值排序", {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16"}));
对于每一行(
如果(:FF_Calc < 0,则 rowstate() = 排除状态(1),:FF_calc > 1,则 rowstate() = 排除状态(1),rowstate() = 排除状态(0)
);
);
对于每一行(
如果(dt:FF_Calc < 0,rowstate() = 排除状态(1),dt:FF_Calc > 1,rowstate() = 排除状态(1),rowstate() = 排除状态(0)
);
); // 这两个命令在脚本中都无法运行,但如果手动执行则一切正常。我是否需要选择表之类的操作?
回复:将列从字符型转换为数值型时遇到问题宾果!
非常感谢!
回复:将列从字符型转换为数值型时遇到问题它具体怎么运行不正常?是出现错误信息还是结果不对?
总之,列变量 col 没有正确赋值。您必须在单独的语句中或在 `NewColumn()` 函数中发送建模类型消息。赋值完成后,您可以使用 col 代替 `:FF_Calc`。
例如
col = 新专栏 ( "FF_Calc" , numeric , continuous ) ;
col <<设置值( { -1 , 0 , 1 , 2 } ) ;
对于每一行(
如果(
列< 0 , 行状态() = 排除状态( 1 ) ,
科尔> 1, Row State() = Excluded State( 1 ),
行状态() = 排除状态( 0 )
)
);