脚本:检索列数据表的某些名称<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好
我有一个数据表(从Excel导入),其中某些列名具有日期格式(例如9月14日)。 但是也有其他专栏。 附件中找到jmp数据表Example1。 有两个问题。
首要问题:
我需要将日期列堆叠起来,例如在Graph Builder分析中将其作为X。这并不是很困难(Example1中的脚本,但是该表将成为活动文档,随着月份的进展将添加新列,因此我无法将自动脚本与硬编码列一起使用。
我需要提取具有此类日期结构(月份YY)的列名称,并将其堆叠。 我尝试使用获取列名来提取列列表:
colNames =数据表( “示例1” ) <<获取列名;
节目(colN艾姆斯) ;
但是我不能仅提取我感兴趣的堆栈。 我考虑过Regex(),但无法按照我喜欢的方式运行它。
第二期:
然后出现下一期。 数据类型将是字符和标称值。 我希望它是数字和序数的(或者至少是字符和序数的,但顺序正确)。 将属性更改为数字时,我会丢失很多值,但不是全部。
不知道我在这里做错了什么。
谢谢你的帮助,
马丁
回复:脚本:检索列数据表的某些名称嗨,唐,
现在,我更了解您使用过的regexp公式。 我想我可以通过添加条件来将其调整为通用目的,例如,在变量名与“月YY”,“ DD月YY”,“ DD.MM.YY”等混合使用的情况下,将其调整为最终格式。
最好的办法是使JMP知道的变量名称具有一致的输入格式。
感谢您的帮助,您使我的示例步入正轨。 谢谢!
马丁
回复:脚本:检索列数据表的某些名称嗨,唐,
我通过使用if构造作为Count一词来绕过日期Transfer,这取决于是否有前导数字:
当前数据表() <<新专栏( “新日期” ,
数字,
序数,
格式( “ ddMonYYYY” ) ,
式(
如果(不见了(数词(字( 1个, :基准) ) ) ,
日期DMY (
1个,
比赛(字( 1个, :基准) ,
“ Januar” , 1个,
“二月” , 2 ,
“März” , 3 ,
“四月” , 4 ,
“麦” , 5 ,
“朱尼” , 6 ,
“朱莉” , 7 ,
“八月” , 8 ,
“九月” , 9 ,
“十月” , 10 ,
“十一月” , 11 ,
“ Dezember” , 12 ,
13
) ,
2000 +数词(字( 2 , :基准) )
) ,
日期DMY (
数词(字( 1个, :基准) ) ,
比赛(字( 2 , :基准) ,
“ Januar” , 1个,
“二月” , 2 ,
“März” , 3 ,
“四月” , 4 ,
“麦” , 5 ,
“朱尼” , 6 ,
“朱莉” , 7 ,
“八月” , 8 ,
“九月” , 9 ,
“十月” , 10 ,
“十一月” , 11 ,
“ Dezember” , 12 ,
13
) ,
2000 +数词(字( 3 , :基准) )
)
)
)
) ;
但是我仍然对创建列表regNames的regexp公式有疑问。
马丁
回复:脚本:检索列数据表的某些名称嗨,唐,
我试图通过您的例子。 但是,我得到一个空的regNames列表,因此堆栈脚本提示我像以前一样输入所有内容。 这将导致一个数据表,其中的新列脚本由于缺少列表而无法运行。 另外,日期转换对我也不起作用。
您尝试过了吗,对您有用吗? 您使用了哪种语言设置?
谢谢,
马丁
回复:脚本:检索列数据表的某些名称马丁
我附上一个脚本,该脚本应该可以解决您遇到的问题。 正则表达式在JSL中使用时特别棘手,并且与标准正则表达式有所不同(尽管它非常接近,主要缺少某些功能)。 发生日期问题是因为JMP无法将日期识别为可用的信息,至少在我的版本中没有看到它们。 我的解决方案解析了名称,并创建了一个带有数字日期的新列。 有其他解决方案,尽管我虽然这是最简单的。 !