我有大约 500 个文本文件需要合并。 它们都没有标题。 这些值用逗号分隔,如下所示。 (所有文件的格式相同)
122,3410732003,,ABC2,P
122,3410732003,,ABC2I,13.6
122,3410732020,,ABC2,P
122,3410732020,,ABC2I,4.13
因此,当我尝试使用 JMP 中的导入多个文件选项和 csv 设置时,它警告我将生成 500 个数据表。
当我尝试使用文本(每行一行)导入文件时,所有数据都在一列中。
不幸的是,我对脚本了解不够,无法编写自己的脚本。 (我尝试了在这个论坛上找到的附加脚本,但无法让它工作,我显然做错了什么!)
非常感谢任何和所有的帮助!
您可以通过文件 > 使用 JMP 15 导入多个文件以交互方式执行此操作。 请参阅 JMP文档关于这个设施。 您也可以在脚本中使用此命令。
像这样的东西应该有效:
Names Default To Here(1);
path = "C:\WIP\All text files\"; //note ending \
fileList = Files In Directory(path);
//use first table as "base datatable" to concatenate to
dt = Open(
path || fileList[1],
columns(
New Column("c000001", Numeric, "Continuous", Format("Best", 12)),
New Column("c000002", Numeric, "Continuous", Format("Best", 12)),
New Column("c000003", Numeric, "Continuous", Format("Best", 12)),
New Column("c000004", Character, "Nominal"),
New Column("c000005", Character, "Nominal")
),
Import Settings(
End Of Line(CRLF, CR, LF),
End Of Field(Comma, CSV(0)),
Strip Quotes(1),
Use Apostrophe as Quotation Mark(0),
Use Regional Settings(0),
Scan Whole File(1),
Treat empty columns as numeric(0),
CompressNumericColumns(0),
CompressCharacterColumns(0),
CompressAllowListCheck(0),
Labels(0),
Column Names Start(1),
Data Starts(1),
Lines To Read("All"),
Year Rule("20xx")
)
);
//start from 2 because we already have file 1 as dt
For(i = 2, i <= N items(fileList), i++,
dt_temp = Open(
path || fileList[i],
columns(
New Column("c000001", Numeric, "Continuous", Format("Best", 12)),
New Column("c000002", Numeric, "Continuous", Format("Best", 12)),
New Column("c000003", Numeric, "Continuous", Format("Best", 12)),
New Column("c000004", Character, "Nominal"),
New Column("c000005", Character, "Nominal")
),
Import Settings(
End Of Line(CRLF, CR, LF),
End Of Field(Comma, CSV(0)),
Strip Quotes(1),
Use Apostrophe as Quotation Mark(0),
Use Regional Settings(0),
Scan Whole File(1),
Treat empty columns as numeric(0),
CompressNumericColumns(0),
CompressCharacterColumns(0),
CompressAllowListCheck(0),
Labels(0),
Column Names Start(1),
Data Starts(1),
Lines To Read("All"),
Year Rule("20xx")
)
);
dt << Concatenate(dt_temp, Append to first table);
Close(dt_temp, no save);
);