잘못된 출력을 제공하는 Word() 함수모두들 안녕,
word() 함수를 사용하는 데 문제가 있습니다. .csv로 시작합니다.
예를 들어:
열1,열2
0,556
0,557
0,558
-1,225
-1,226
Datafile = Load Text File (...);
line_content = Words (Datafile, "\!n");
For(nn=2, nn <= N items (line_content), nn++,
Col1_list=Word(1,line_content[nn], ",");
Col2_list=Word(2,line_content[nn], ",");
);
결과 목록은 다음과 같습니다.
{"0", "0", "0", "-12", "-12"}
{"556", "557", "558", "25", "26"}
따라서 줄이 마이너스로 시작하면 word() 함수는 다르게 작동합니다... Item()을 시도하고 Num(Word()) 절을 사용했지만 아무것도 변경되지 않습니다. Word(1,Trim(line_content[nn],","))도 사용해 보았습니다.
JMP 14.0.0을 사용하고 있습니다.
미리 감사드립니다
Re: 잘못된 출력을 제공하는 Word() 함수귀하의 아이디어에 다시 한 번 감사드립니다. 이것도 좋아보입니다. 무엇이 변경되었는지 모르겠지만 이제 JMP는 내가 처음 질문을 게시한 어제의 스크립트를 사용하여 파일을 올바르게 가져옵니다(여기 게시물에서 내가 만든 오류 제외). ","와 "." 사이에 상위 수준의 창/엑셀 설정이 섞여 있어야 합니다. 소수점/점 미분. 미국 표준을 사용하도록 독일 창을 구성했습니다.Re: 잘못된 출력을 제공하는 Word() 함수지금 무엇을 찾고 있는지 정확히 모르겠지만 아래의 작은 스크립트는 .csv 파일을 읽고 지정한 2개의 목록을 오류 없이 반환합니다.내가 추가한 유일한 항목은 파일에 있는 캐리지 리턴 문자가 목록 값에 포함되지 않도록 하는 것이었습니다.
names default to here(1);
Datafile = Load Text File ("...……...\WFR1_sample1.csv");
line_content = Words (Datafile, "\!n");
// Get rid of all lines upto the Graph data
// The \!r is a Carriage Return character which is at the end of each line
line_content = remove(line_content,1,loc(line_content,"{QgWave Graphs}\!r")+1);
Col1_list = {};
Col2_list = {};
For(nn=1, nn <= N items (line_content), nn++,
insert into(Col1_list,Word(1,line_content[nn], ",\!r"));
insert into(Col2_list,Word(2,line_content[nn], ",\!r"));
);Re: 잘못된 출력을 제공하는 Word() 함수첨부된 원본 csv는 다음과 같습니다. 나는 동료가 어깨 너머로 보도록 했고 그도 그것을 보았습니다... 재현 가능합니다.
Re: 잘못된 출력을 제공하는 Word() 함수아, 죄송합니다. 다음 표현을 사용했습니다.
<SPAN class="token function">For</SPAN><SPAN class="token punctuation">(</SPAN>nn<SPAN class="token operator">=</SPAN><SPAN class="token number">2</SPAN><SPAN class="token punctuation">,</SPAN> nn <SPAN class="token operator"><=</SPAN> N items <SPAN class="token punctuation">(</SPAN>line_content<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN> nn<SPAN class="token operator">++</SPAN><SPAN class="token punctuation">,</SPAN>
Col1_list[nn-1]<SPAN class="token operator">=</SPAN><SPAN class="token function">Word</SPAN><SPAN class="token punctuation">(</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">,</SPAN>line_content<SPAN class="token punctuation">[</SPAN>nn<SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token string">","</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
Col2_list[nn-1]<SPAN class="token operator">=</SPAN><SPAN class="token function">Word</SPAN><SPAN class="token punctuation">(</SPAN><SPAN class="token number">2</SPAN><SPAN class="token punctuation">,</SPAN>line_content<SPAN class="token punctuation">[</SPAN>nn<SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token string">","</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
훨씬 더 편리한 insert into () 함수를 사용하도록 전환하겠습니다. 감사해요.
제공된 샘플 .csv를 사용하면 코드가 실제로 작동합니다.
하지만 방금 정신 건강에 의문을 품기 시작했고 Windows 메모장, 메모장++, 워드 패드, Excel과 같은 다른 편집기로 .csv 파일을 열었습니다. 몇 번 실행할 때마다 표시된 데이터 열에는 사용된 프로그램과 관계없이 다른 위치에 쉼표가 있습니다. 나는 전에 이것을 본 적이 없다. 그냥 퇴근하고 집에 갈지도 몰라요.




Re: 잘못된 출력을 제공하는 Word() 함수귀하의 구문은 나에게 의심됩니다.Col1_list와 Col2_list가 연결된 목록을 생성하는 방법을 잘 모르겠습니다.아래는 제가 수정한 내용이고 제가 사용한 csv 파일을 첨부합니다.JMP 14.1에서 오류 없이 2개의 목록을 생성합니다.
Datafile = Load Text File (".................\test.csv");
line_content = Words (Datafile, "\!n");
Col1_list = {};
Col2_list = {};
For(nn=2, nn <= N items (line_content), nn++,
insert into(Col1_list,Word(1,line_content[nn], ","));
insert into(Col2_list,Word(2,line_content[nn], ","));
);