여러 개의 CSV 파일을 폴더로 가져와서 쌓습니다.안녕하세요 여러분,
CSV 파일에 이상한 구분 기호( , )가 있어서 문제가 있는데, JMP에서 자동으로 가져오는 방법을 알아낼 수가 없습니다 .
동일한 구조와 열 이름을 가진 여러 CSV 파일이 들어 있는 폴더를 선택하고, 모든 데이터를 가져와서 쌓을 수 있도록 하려고 합니다.
제 파일과 비슷한 CSV 파일을 첨부했습니다.
당신이 나를 도울 수 있기를 바랍니다:)
건배, 크리스찬
자동화 및 스크립팅데이터 액세스대량 맞춤화Re: 여러 개의 CSV 파일을 폴더로 가져와서 쌓기그보다 더 나아가, 따옴표는 1, 2, 3으로 나타납니다.

아마도 가장 좋은 해결책은 파일 내보내기를 수정하는 것일 겁니다 
또 다른 해결책: "Notepad ++" / 파일에서 바꾸기를 사용하세요:

따옴표를 없애려면.
Re: 여러 개의 CSV 파일을 폴더로 가져와서 쌓기JMP에서는
Text to Columns는 이러한 구분 기호 묶음을 처리하는 도구입니다.
" 또는 "," " 또는 """ 인지는 중요하지 않습니다.
여러 개의 구분 기호를 하나로 처리합니다.
이는 매우 해로울 수 있습니다. 텍스트를 열로: 누락된 데이터를 올바르게 처리합니다.
... 하지만 종종 여기처럼 우리에게 꼭 필요한 것이 바로 그것일 때가 있습니다.
그래서,
a) "줄당 행" 옵션을 사용하여 MFI를 통해 파일을 로드합니다.
b) and use 텍스트를 열로 with Delimiters = ,"

dts = Multiple File Import(
<
<SET folder="">
</SET>
<BR />
Re: 여러 개의 CSV 파일을 폴더로 가져와서 쌓기또한 각 행의 끝에 ""가 있는 것 같고 첫 번째 열은 "," 형식이 아니라 ,," 형식입니다.

이것이 모든 파일에 적용되는지는 확실하지 않지만 텍스트로 처리하고 "적절한" CSV로 정리한 다음 메모리에서 JMP 테이블로 엽니다.
Names Default To Here(1);
filedir = "$DOWNLOADS\New folder (2)\";
csvfiles = {};
For Each({filename}, Files In Directory(filedir),
If(Ends With(filename, ".csv"),
Insert Into(csvfiles, filedir || filename);
);
);
dt_res = Empty();
For Each({csvfile}, csvfiles,
txt = Load Text File(csvfile);
lines = Words(txt, "\!N");
lines_fixed = Transform Each({line}, lines,
items = Concat items(Words(line, "\!","), ",");
);
csv_txt = Concat Items(lines_fixed, "\!N");
dt = Open(Char to Blob(csv_txt), "text", Invisible);
dt << Set Name(Word(-1, csvfile, "\/"));
If(Is Empty(dt_res),
dt_res = dt;
,
dt_res << Concatenate(
dt,
"Append to first table";
);
Close(dt, no save);
);
);
dt_res << Bring Window To Front;
Re: 여러 개의 CSV 파일을 폴더로 가져와서 쌓기아, 맞아요. words()는 텍스트를 열로() 와 같은 기술을 사용하네요.
Re: 여러 개의 CSV 파일을 폴더로 가져와서 쌓기더 깊이 파헤쳐보기:
가장 중요한 문제는

MFI 설정에서.
JMP는 첫 번째와 마지막 따옴표에 대해서는 만족하며 텍스트의 전체 줄을 하나의 열로 읽습니다(두 번째 따옴표는 모두 유지하죠?!?):

편집: 첫 번째와 마지막 따옴표? 아니요, 더 복잡해요. 아래를 참조하세요!
빠른 해결책으로 CSV 인용 설정을 다른 문자로 변경할 수 있습니다.

<
<SET csv="" quote=""></SET>
<P>그리고 따옴표 자체를 구분 기호로 사용합니다.</P> <P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hogi_2-1756463581618.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_2-1756463581618.png" style="width: 193px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_2-1756463581618.png" style="width: 193px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_2-1756463581618.png" style="width: 193px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_2-1756463581618.png" style="width: 193px;"><span class="lia-inline-image-display-wrapper" image-alt="hogi_2-1756463581618.png" style="width: 193px;"><img src="https://us.v-cdn.net/6038925/uploads/images/81530i4BF1266286F27E58/hogi_2-1756463581618.png" role="button" title="hogi_2-1756463581618.png" alt="hogi_2-1756463581618.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></P> <P><BR />이렇게 하면 JMP가 파일을 읽을 수 있습니다. 하지만:</P> <P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hogi_3-1756463633644.png" style="width: 773px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_3-1756463633644.png" style="width: 773px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_3-1756463633644.png" style="width: 773px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_3-1756463633644.png" style="width: 773px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_3-1756463633644.png" style="width: 773px;"><span class="lia-inline-image-display-wrapper" image-alt="hogi_3-1756463633644.png" style="width: 773px;"><img src="https://us.v-cdn.net/6038925/uploads/images/81531iE7879526B8F81200/hogi_3-1756463633644.png" width="773" height="87" role="button" title="hogi_3-1756463633644.png" alt="hogi_3-1756463633644.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></P> <P><FONT face="courier new,courier">단어()</FONT> 및 <FONT face="courier new,courier">텍스트를 열로()</FONT> 와 달리 <FONT face="courier new,courier">MFI는</FONT> 모든(단일) 구분 기호를 구분 기호로 처리합니다.<BR /> 아이디어: 누락된 데이터 = 누락된 데이터, 건너뛴 열 없음!</P> <P>MFI에게 감사드립니다. 대부분의 파일에는 이게 맞는 것 같습니다 : - )</P> <BR /> <P>여기서는 그렇지 않습니다. 즉, 가져온 후 사용자는 빈 열을 삭제해야 합니다.<BR /><BR /> 참고: 빈 CSV 견적 설정으로 파일을 가져오는 것은 작동하지 않습니다.</P> <P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hogi_4-1756463762291.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_4-1756463762291.png" style="width: 158px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_4-1756463762291.png" style="width: 158px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_4-1756463762291.png" style="width: 158px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_4-1756463762291.png" style="width: 158px;"><span class="lia-inline-image-display-wrapper" image-alt="hogi_4-1756463762291.png" style="width: 158px;"><img src="https://us.v-cdn.net/6038925/uploads/images/81533iF2FFDC8A29503E1D/hogi_4-1756463762291.png" role="button" title="hogi_4-1756463762291.png" alt="hogi_4-1756463762291.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></P> <CODE class=" language-jsl"><
<SET csv="" quote=""></SET> <P>JMP는 자동으로 따옴표를 CSV 인용으로 사용하고 전체 파일을 단일 열로 로드합니다.</P>
Re: 여러 개의 CSV 파일을 폴더로 가져와서 쌓기MFI 및 CSV 견적을 더욱 재미있게 활용하세요
첨부 파일을 사용하세요
입력: JMP:

1~N행에 맞는 가설을 세우면 N+1행에 대한 블랙 스완을 쉽게 찾을 수 있습니다.
Re: 여러 개의 CSV 파일을 폴더로 가져와서 쌓기0. 따옴표 앞에 문자가 있으면 CSV 따옴표가 아닙니다.
- 셀의 첫 번째 문자가 따옴표인 경우 CSV 따옴표입니다. -> 닫는 따옴표를 찾으려면 스캔하세요.
- 도중에 두 개의 인접한 따옴표가 있는 경우 이를 작은 따옴표로 처리합니다.

- 길에서 쉼표를 발견하면 그것은 쉼표입니다.
- 길을 가다가 줄바꿈 문자를 발견하면, 그것은 줄바꿈 문자입니다(!!)
실제로 셀의 내용은 다음과 같습니다.

- 다른 흥미로운 캐릭터가 있나요?
- 닫는 따옴표를 찾으면 인용문이 완성된 것입니다.
- 구분 기호나 줄 바꿈을 검색하세요.
찾은 문자가 있으면 인용문에 추가하면 됩니다.
- 여기: 작은따옴표는 작은따옴표입니다
- 2개의 따옴표는 2개의 따옴표입니다(2번과 비교)
- 구분 기호나 줄 바꿈이 발견되면 이것이 셀의 끝입니다(4번과 비교)
- 인용문 앞에 공백이 있으면 해당 인용문은 CSV 인용문이 아닙니다.
(0번의 하위 집합)
이해하는 데 시간이 좀 걸렸어요 
이전 게시물에서 별도의 사례로 추가한 이유가 바로 이겁니다.
csv 파일: JMP:

Re: 여러 개의 CSV 파일을 폴더로 가져와서 쌓기새로운 결과에 비추어 볼 때, 원래 게시물의 데이터 표는 이제 더 익숙해 보입니다.
이는 첫 번째 단계('V1')에서 숫자 및 문자 열에 따옴표를 추가하여 내보낸 데이터 테이블과 비슷합니다(첫 번째 열에만 추가 따옴표가 추가되지 않았습니다).

놀랍게도:
V1은 JMP와 Excel에서 드래그 앤 드롭으로 열 수 있습니다. 두 프로그램 모두 CSV 따옴표를 자동으로 '압축 해제'하고 올바른 형식으로 표를 로드합니다. 그렇다면 V1에서이상한 sep.csv가 포함된 CSV ?
효과적인 방법:
2단계: V1을 탭 으로 구분된 테이블로 엽니다(CSV 따옴표가 있는 CSV 파일 대신)
3단계: 테이블을 csv로 저장합니다(이 단계[JMP 및 Excel]에서 각 행의 시작과 끝에 추가 따옴표가 자동으로 추가되고 작은 따옴표는 2개의 따옴표로 대체됩니다)
역방향 프로세스는 간단해야 합니다.
- JMP나 Excel에서 sep.csv 파일을 CSV로 열면 됩니다. 두 프로그램 모두 따옴표를 자동으로 제거하고, 큰따옴표는 작은따옴표로 다시 변환됩니다. Excel에서 보면 다음과 같습니다.

우리가 원하는 것과 똑같습니다.

그러면 데이터 테이블을 CSV로 저장하고 다시 로드해 보겠습니다. 
JMP에서는 다음 옵션을 비활성화할 수 있습니다.
]
안타깝게도 CSV 인코딩은 기본적으로 활성화되어 있습니다. 한편으로는 CSV 따옴표 없이 파일을 저장하면 데이터 구조가 크게 변경되기 때문에 합리적입니다!
하지만 실제로 우리가 원했던 것은 바로 그것이었습니다.
따라서 유일한 방법(?)은 JMP나 Excel에서 항목을 텍스트 편집기로 복사한 다음 거기에서 v1.txt를 저장하는 것입니다.
텍스트 편집기는 CSV 인용에 대해 알지 못하고 텍스트를 그대로 저장합니다.
Re: 여러 개의 CSV 파일을 폴더로 가져와서 쌓기@호기 @jthi 답변과 노고에 정말 감사드립니다! 생각보다 훨씬 더 심각했어요!
귀하의 답변을 꼼꼼히 살펴보는 데 시간이 좀 걸릴 것 같지만, 바로 감사의 말씀을 전하고 싶습니다.:)
건배, 크리스찬