进口:很多额外的col。用户选择他们想要的?早上好,
所以我是jsl的新手并试图解决这个问题。 我从我们的服务器获得的数据集有大量额外的列,通常col是空白的。 我希望用用户选择的对话框启动我的大多数脚本,允许他们选择/添加/删除他们选择的列,并可能将它们重新排列为首选顺序?有帮助吗?
我们说col是:
| 山口# | COLNAME | |
| 1 | date_export | |
| 2 | 产品类别 | |
| 3 | 零件号 | |
| 4 | 食谱 | |
| 五 | date_run | |
| 6 | measurement_type | |
| 7 | 值 | |
| 8 | 工具 | |
| 9 | 目标 | |
好的,所以不需要这些col中的一些,并且从人类观看的角度看它们都绝对是乱序的。 理想情况下,我希望脚本能够自动选择并订购以下内容:
Col#:2,8,4,5,6,7,9
然后可能有一个用户对话框,允许用户根据需要选择任何其他列添加到重新格式化的输出。
你怎么看?
回复:导入:很多额外的col。用户选择他们想要的?假设我理解你的问题:
// Open Sample Data Table
dt = Open( "$SAMPLE_DATA\Air Traffic.jmp" );
// Define list of columns to delete
DelList = {"Carrier Code","Flight Number"};
// Delete Columns
dt << Delete Columns(DelList); 回复:导入:很多额外的col。用户选择他们想要的?真棒!如何预先确定列名列表?就像我的数据表一样,有几十个或多个列(通常不是空的)。
选择colname(crap1,crap2,crap3 ......)
删除所选列
然后继续允许用户选择修剪后的剩余部分?
回复:导入:很多额外的col。用户选择他们想要的?这是一段代码,我用它来创建一个表脚本,当我读取数据时,它将删除空列:
// add a table script that will remove empty columns
dt << Set Property( "Remove Empty Columns",
dt = Current Data Table();
lstToDelete = {};
For (i=1,i<=NCols(dt),i++,
col = Column(dt,i);
If (Col Number(col)==0,
InsertInto(lstToDelete,i)
)
);
If (NItems(lstToDelete)>0,
dt << Delete Columns(lstToDelete)
);
);回复:导入:很多额外的col。用户选择他们想要的?我喜欢这个,选择所需的col,然后反转它并删除不需要的col。
你有关于运行一个预处理的建议,我可以大规模“删除”预先指定的col来减少用户选择吗?
不幸的是,我的数据文件带有几十个不必要的列,用于不需要的东西。
也许我可以写入每个dt = open()的开头,删除已知的'不需要的cols'?
回复:导入:很多额外的col。用户选择他们想要的?dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
// Get Column Names
ColNames = dt << Get Column Names("String");
// Open a window for user selection
NW1 = New Window("User Selection",
<< Modal,
V List Box(
Lineup Box(
Lb1 = List Box(ColNames);
)
),
H List Box(
Button Box("OK",
// Unload User Inputs
Rb1Val = Lb1 << Get Selected();
)
)
);
// Select Columns
for(i = 1, i <= N Items(ColNames), i ++,
If(Contains(Rb1Val,ColNames[i]),
Col = Column(dt,i); ;
Col << Set Selected(1);
);
);
// Delete Unwanted Columns
dt << Invert Column Selection ;
dt << Delete Columns ;回复:导入:很多额外的col。用户选择他们想要的?希望外来文件格式的性质是稳定的。您可以尝试将此参数用于Open()函数以进行导入:
Select Columns( "col", ... )
假设您在打开时将数据引用存储在变量(例如dt)中,则可以使用此模式迭代地重新排列列:
dt << Go to Column( col ref ) // select column to move
<< Move Selected Columns( ... ) // move column to new location
<< Clear Column Selection; //
希望这个回复让你继续前进。
回复:导入:很多额外的col。用户选择他们想要的?嘿马克,
所有好问题。 我希望我可以在前端编写查询脚本,但我的公司的数据库被锁定。 我们必须提出请求,我们得到一个扁平的excel .csv文件,其中包含所有这些不必要的列和命名不佳的标题(如35列)。 我正在努力获得只读访问权限,但这是一个不同的问题。
回复:导入:很多额外的col。用户选择他们想要的?源文件是平面还是关系?什么是源文件类型?您导入了哪些文件?你必须导入整个文件吗?
你能查询数据库的结果吗?如果是这样,您可以构建一个查询来为您提供所需的内容。