数据表的子集<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />大家好,
我是JMP编码的新手,需要你的帮助来解决这个问题。
基本上我要做的是导入一个excel文件并将其保存为数据表,并且我通过使用此命令实现。
打开数据库(“DSN = Excel Files; DBQ =”xyz“.xlsm; DriverId = 1046; MaxBufferSize = 2048; PageTimeout = 5;”,“SELECT * FROM`'CPASU by queue $'`”,“CPASU by queue $ “);
到现在为止还挺好。
然后从CPASU通过已创建的队列数据表 - 我正在尝试使用以下命令创建该数据表的子集
(数据表(“CPASU by queue $”)<< SELECT WHERE AND(FWEEK> 201201,预测精度> 0)
<<子集(
链接,
输出表名称(“预测准确度$”)));
现在,当我执行这些命令时,我完全能够按队列创建数据表CPASU,并且还能够创建预测精度的子集表子集。但是,子表中返回的行不会按照我在select子句中给出的条件返回。它返回主数据表中的所有行(CPASU by queue)...
有人可以帮我解决这个问题吗?
此外,如果有一本书我可以遵循以了解JMP JSL ....我试图遵循由JMP GUI自动创建的脚本,但到目前为止它一直是一场噩梦。
提前感谢您的帮助。
Re:数据表的子集您的IF语句过早关闭了括号并且您错过了逗号:
如果 ( FOUND_ROWS > 0,
DP << 子集 ( 输出表名称 ( “预测准确性的子集$” )) ;
);
Re:数据表的子集好的问题再次出现......不确定代码发生了什么
DP = 数据表 ( “CPASU by queue $” ) << SELECT WHERE ( 和 ( FWEEK > 201201 ,没有蒙面 != 0 )) ;
FOUND_ROWS = NROWS ( DP << 获取选定的行 ) ;
如果 ( FOUND_ROWS > 0 )
DP << 子集 ( 输出表名称 ( “预测准确性的子集$” )) ;
CPASU by queue是从代码中较早的excel文件创建的数据表。请帮忙。
谢谢,
Re:数据表的子集记住在好的建议后标记答案,并标记正确的答案和有用的答案(=使论坛的使用更有效率)!
Re:数据表的子集是的我认为问题出在括号中...现在有效...谢谢..
Re:数据表的子集看起来您在第二个子集选择中放错了一些括号。你必须把And()放在Select Where()里面。
像这样:
DP = 数据表 ( “CPASU by queue $” ) << SELECT WHERE ( 和 ( FWEEK > 201201 ,没有掩饰 != 0 ) ) ;
Re:数据表的子集我试过这样做,但它仍然没有返回任何新的结果。以下是完整的代码。
// - 打开文件并在JMP中建立连接。
打开数据库(“DSN = Excel文件; DBQ = C:\ Users \\ Documents \\ JMP Analysis \ XXX.xlsm; DriverId = 1046; MaxBufferSize = 2048; PageTimeout = 5;”,“SELECT * FROM`'CPASU by queue $'`“,”CPASU by queue $“);
//创建第一个子集
(数据表(“CPASU by queue $”)<<选择位置(AND(FWEEK> = 201201,FWEEK!= 201248,FWEEK!= 201247,FWEEK!= 201243,实际CPASU> 0))<<子集(已链接) ;
当前数据表(数据表(“CPASU的子集由队列$”)));
//为预测准确性创建第二个子集
dp =(数据表(“CPASU by queue $”)<< SELECT WHERE AND(FWEEK> 201201,No Masking!= 0));
found_rows = nrows(dp <<获取选定的行数);
if(found_rows> 0,
// 然后
dp << subset(输出表名称(“预测准确度$”)),
//别的
写(“没有选择行”)
);
问题出在第二个子集中。虽然它正在创建第二个子集,但它返回与第一个子集的查询相同的结果集,并且我非常确定在数据表CPASU中,队列中有几行与SELECT WHERE AND的Sql条件匹配(FWEEK> 201201,没有掩蔽!= 0));
请帮忙......谢谢
Re:数据表的子集如果为搜索找到任何行,则只应创建子集。 如果没有找到行,则子集将与原始表相同。 你需要这样的东西。 我为可读性添加了一些代码改进。
DT = 打开数据库 ( “DSN = Excel文件; DBQ =” XYZ “.XLSM; DriverId = 1046; MAXBUFFERSIZE = 2048;将PageTimeout = 5;” ,
“SELECT * FROM`'CPASU by queue $'`” , “CPASU by queue $” ) ;
//根据您的条件选择行
DT << 选择在哪里 ( : FWEEK > 201201 & : 预测的准确性 > 0 ) ;
//查看是否选择了任何行
FOUND_ROWS = NROWS ( DT << 获取选定的行 ) ;
如果 ( FOUND_ROWS > 0 ,
// 然后
DT << 子集 ( 输出表名称 ( “预测准确性的子集$” )) ,
//别的
打印 ( “没有选择任何行” )
) ;
有几本优秀的JMP脚本书。 JMP附带了JMP脚本PDF手册,但也有这本书跳转到JMP(r)脚本作者:Wendy Murphrey和Rosemary Lucas,ISBN 978-1-59994-658-0