결합해야하는 약 500 개의 텍스트 파일이 있습니다. 모두 헤더가 없습니다. 값은 아래와 같이 쉼표로 구분됩니다. (형식은 모든 파일에서 동일)
122,3410732003,, ABC2, P
122,3410732003,, ABC2I, 13.6
122,3410732020,, ABC2, P
122,3410732020,, ABC2I, 4.13
따라서 csv 설정으로 JMP에서 여러 파일 가져 오기 옵션을 사용하려고하면 500 개의 데이터 테이블이 생성된다는 경고가 표시됩니다.
텍스트 (행당 한 줄)를 사용하여 파일을 가져 오려고하면 모든 데이터가 한 열에 있습니다.
안타깝게도 필자는 스크립트를 작성하기위한 스크립팅에 대해 충분히 알지 못합니다. (이 포럼에서 찾은 첨부 된 스크립트를 시도했지만 작동하지 못했습니다. 분명히 뭔가 잘못하고 있습니다!)
이것에 대한 모든 도움은 대단히 감사합니다!
다음과 같이 작동합니다.
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);
);