間違った出力を与える Word () 関数皆さんこんにちは、
word() 関数の使用に問題があります。 私は.csvから始めます
例えば:
col1,col2
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 は昨日最初に質問を投稿したときのスクリプトを使用してファイルを正しくインポートするようになりました (投稿で私が犯したエラーを除いて)。 「、」と「。」の間でいくつかの高レベルのウィンドウ/Excel設定が混同されている必要があります。小数点/小数点の区別。 アメリカの標準を使用するようにドイツ語のウィンドウを構成しました。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を使用すると、コードは実際に機能します。
しかし、私は自分のメンタルヘルスに疑問を持ち始めたばかりで、.csv ファイルを Windows のメモ帳、メモ帳++、ワードパッド、Excel などのさまざまなエディターで開きました。 数回実行するたびに、表示されたデータ列は、使用されているプログラムとは関係なく、別の場所にカンマが表示されます。 これは今まで見たことがありません。 仕事を辞めて家に帰るかもしれません。




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], ","));
);