在 JMP 13 中合并 CSV你好,
我喜欢在给定目录中合并几个 CSV 文件。 这些文件格式相似,但也喜欢在标题后跳过几行,只保留第一个文件的标题。 合并文件后,我可以对合并后的文件进行分析。 我查看了 JMP 社区,但没有找到最佳解决方案。 感谢您帮助我提供执行此操作的脚本。 谢谢。
回复:在 JMP 13 中合并 CSV谢谢吉姆。 我能够使用 Word() 函数让它工作。 感谢您的支持。
回复:在 JMP 13 中合并 CSV谢谢吉姆。 我主要阅读 Pick File() 并认为有一种方法可以做到这一点。 我会尝试你的建议并让你知道。 再次感谢。
回复:在 JMP 13 中合并 CSV1. 我强烈建议您阅读脚本指南……您需要查看 JSL 中可用的不同项目……
您所要求的解决方案是简单地从完整路径的末尾删除文件名。在JSL中,有各种各样的字符处理函数。看:
帮助==>脚本索引==>函数==>字符
具体来说,需要使用Word()函数
completefilename = "/C:/Users/txjim/Parameter Ranking/Parameter Ranking_v8 with private.jsl";
filename = Word( -1, completefilename, "/" );<BR />show( filename );
文件名的值为“Parameter Ranking_v8 with private.jsl”
回复:在 JMP 13 中合并 CSV谢谢吉姆。 我使用了 Pick File() 但我只需要文件名而不是完整路径/文件名信息。 有没有办法获取文件名?
prefilelist = Pick File(
"Select JMP File",
"",
{"JMP Files|jmp;jsl;csv", "All Files|*"},
1,
0,
"",
multiple // save flag is 0, allows multiple file selection
);
show(prefilelist);
感谢您一直以来的支持。
回复:在 JMP 13 中合并 CSV在脚本索引中,您将找到使用 Pick File() 的定义和示例。这将允许您选择文件。
回复:在 JMP 13 中合并 CSV感谢大家的大力支持。 我还希望能够选择目录并选择单个 csv 文件,而不是选择目录中的所有 csv 文件。 我正在使用 Byron (JMP) 编写的脚本并附在此处。 它工作得很好,但如果有人可以帮助我选择单个 csv 文件,那将非常有帮助。 谢谢
回复:在 JMP 13 中合并 CSV谢谢。 我正在尝试为 JMP13 进行 csv 合并,很高兴听到 JMP14 可以处理这个问题。 是时候升级了!!
回复:在 JMP 13 中合并 CSV谢谢。 我也试过你的,效果很好。
回复:在 JMP 13 中合并 CSVJMP 14 具有多文件导入功能。 它旨在从目录加载文件并合并相似的文件(相同的列、名称)。 它可以将文本文件加载到文本浏览器的数据表中,或使用标题的 CSV 选项并跳过某些行将 CSV 文件加载到表中。
Choosing files from a directoryChoosing files from a directory从目录中选择文件
CSV optionsCSV optionsCSV 选项
回复:在 JMP 13 中合并 CSVdt = New Table( "Untitled", Add Rows( 4 ),
New Column( "Column 1", Character, "Nominal",
Set Values( {"abc", "1", "2", "3"} ) ),
New Column( "Column 2", Character, "Nominal",
Set Values( {"def", "6", "5", "4"} ) ),
New Column( "Column 3", Character, "Nominal",
Set Values( {"ghi", "7", "6", "5"} ) ),
New Column( "Column 4", Character, "Nominal",
Set Values( {"jkl", "2", "3", "4"} ) )
);
// Rename each column to the first row
for (i = 1, i <= ncols(dt), i++,
column(i) << set name(column(i)[1]);
);
// Remove the first row
dt << delete rows([1]);回复:在 JMP 13 中合并 CSV谢谢。 它工作得很好。 我最不想做的是将列名设置为与第一行值相同,然后删除第一行。
回复:在 JMP 13 中合并 CSV这段代码应该可以解决问题。用途获取行代替选择哪里.
dt = New Table( "Test", Add Rows( 5 ),
New Column( "Column 2", Character, "Nominal",
Set Values( {"ABC", "ABC", "DEF", "DEF", "ABC"} )
)
);
abc_rows = dt << get rows where(:Column 2 == "ABC");
nr = nrows(abc_rows);
if (nr > 1,
abc_new = abc_rows[2::nr];
dt << delete rows(abc_new);
);
回复:在 JMP 13 中合并 CSV谢谢。 这样可行。 现在我想遍历表格的每一行并删除除第一行外的第 2 列 =“ABC”。
我做了这样的事情:
dt = 当前数据表();
N = N 行 (dt);
对于 (i= 2, i <= N, i++,
dt << 选择哪里 (:Column 2 == "ABC");
);
它选择了第 2 列 =“ABC”的所有行。 我想保留第一行不被选中。 感谢您一直以来的支持。
回复:在 JMP 13 中合并 CSV选择行按行号选择行。你需要使用的是
dt << 选择哪里( :Column 2 == "" );
回复:在 JMP 13 中合并 CSV谢谢。 我现在可以合并 csv 了。 现在我需要删除例如“Coulmn 2”为空白的行。 我使用了以下内容但没有用:
dt = 当前数据表():
dt << 选择行(:第 2 列 == “”);
它只选择一行而不是所有的空白行。 我为此使用 JMP 13。 请帮忙。 谢谢。
回复:在 JMP 13 中合并 CSV我认为能够做到这一点的唯一方法如下:
1. 读入每个 CSV 文件。
2. 删除每个不需要的标题后的记录。
3. 更改数据表 2 到 N 中的名称,以匹配您要匹配的第一个数据表中的名称。
4. 将表格连接在一起。
5. 将连接的文件另存为 CSV 文件。
一个非常简单但费力的方法,因为您可能需要更改数据表。