値のリストを検索するやあ、
区切られた文字列から作成したリストがあります。 その文字列は次のようになります: (数値)|(名前)|(数値)|(名前)|(数値).... など。 私がやったことは、その文字列を取得し、区切り文字 ('|') で解析することです。 次に、すべての値のリストを取得し、「名前」だけの新しいリストを作成し、それを使用して新しい列を作成しました。 私が遭遇した問題は、文字列を解析して各列に配置するときです。 なぜなら、すべての行のすべての文字列が同じ値で始まるわけではないからです。 2 行のデータからすべての「名前」を取得する必要がありました。 したがって、最初の行、3 行目、5 行目などは同じである必要がありますが、文字列が終わる「名前」は異なります。 その後、2 行目、4 行目、6 行目など、行ごとに異なる「名前」で始まります (奇数行は終了します)。 列を作成するために取得する名前のリストは存在するすべての名前ですが、すべての数値を適切な列に配置できるようにしたいと考えています。
すべてのデータを解析するために使用したスクリプトの一部は次のとおりです。
// すべてのピン名を取得します
リスト = {};
リスト = {};
リスト2 = {};
// :Test_Result の最初の行を反復処理してピン名を取得します
list = Words(column(dt4,"Test_Result")[1], "|");
list2 = 単語(column(dt4,"テスト結果")[2], "|");
// 文字列の最初の値は役に立たない情報なので削除します
list2 = 削除(list2,1);
one_test_result_list = concat(list,list2);
// 2 番目の値で始まるすべてのピン名を取得します
For(i = 1, i <= nitems(one_test_result_list)/2, i++,
Assign(リスト) 、one_test_result_list[i*2]);
);
やり方が分かりません。 文字列内のすべての「名前」に続く「数字」は、その名前に対応する値であるためです。 したがって、その名前が表示された場合は、その名前の列に次の値を入れる必要があります。
助けていただきありがとうございました!
Re: 値のリストを検索する<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />事前には分からない列名を適切に処理します。
Re: 値のリストを検索するdt =新しいテーブル( "例" 、行の追加( 4 ) 、
新しい列( "生データ" 、キャラクター、公称、
設定値(
{ "1|顔|3|スポック|4|タツノオトシゴ|5" 、 "1|顔|2|シャトナー|3|スポック|5" 、
"1|顔|2|シャトナー|3|スポック|4|タツノオトシゴ|5" 、
"1|シャトナー|3|スポック|4|タツノオトシゴ|5" }
)
)
) ;
列名= dt <<列名を取得する(弦) ;
ために(私= 1 、私<=狭い( dt ) 、私++、
単語リスト=言葉( dt :生データ[私】 、 "|" ) ;
ために( k = 2 、 k <=ナイアイテム(単語リスト) 、 k = k + 2 、
1 列=単語リスト[ k ] ;
1_num =単語リスト[ k + 1 】 ;
もしも( !含まれています(列名、 1 列) 、
dt <<新しい列( 1 列、キャラクター、名目上の) ;
挿入する(列名、 1 列) ;
) ;
桁( dt 、 1 列)[私】 = 1_num ;
) ;
) ;
Re: 値のリストを検索するクレイジさん、ありがとう! まさにそれが私が探しているものです! 完璧に機能します!
Re: 値のリストを検索する私も正しい質問に答えているのかわかりません。おそらくこれが役立つでしょう:
dt = New Table( "Untitled",New Column( "dogs"),New Column( "cats"),New Column( "mice"),New Column( "horses"));
load = function({txt},
dt << addrow(1);
list=words(txt,"|");
for(i=1,i
columnName = list; i=i+1;
columnValue = list; i=i+1;
column(dt,columnName)[] = num(columnValue);
)
);
load("mice|3|horses|7");
load("cats|3|mice|9");

1 行目ではテンプレート データ テーブルを作成し、考えられる列名をすべて知っていることを前提としています。行 2 は、単一の引数 txt を取るユーザー関数を開始します。行 3 ~ 10 は関数です。テーブルに行を追加し、テキストからリストを作成し、リストを一度に 2 項目ずつ調べ、名前を取得し、値を取得します。8 行目では、キャラクター名から列を作成し、空の [ ] を使用して現在の行に値を挿入します。行 11 と 12 は、関数への呼び出しの例です。
Re: 値のリストを検索するそれは近いですね! データを解析するコードはすでにあるので、名前だけを含む新しいリストを作成します。 私が本当に望んでいるのは、これらの新しい列を作成した後、それらの列にすべての数値を入力する必要があることです。 すべての名前の後ろにある数字がその名前の値であるため、リストで名前を検索し、次の値をその列に配置したいと思います。 このような感じです:
(これらは列であると仮定します): face |シャトナー |スポック |タツノオトシゴ
2 | 3 | 4 | 5
最初の数字は意味がないので無視しますが、名前に続く数字が気になる値です。 ただし、これらの値の 1 つが欠落しているとします。
str = "1|シャトナー|3|スポック|4|タツノオトシゴ|5" ;
元の列はすべて残っていますが、データ テーブルの一部の行で中間または先頭の値が欠落している可能性があるため、リストを検索して欠落している値をスキップしたいと考えています。
(これらは列であると仮定します): face |シャトナー |スポック |タツノオトシゴ
| 3 | 4 | 5
これがどの程度可能なのかはわかりませんが、すべての行が同じ値で始まるわけではありません。 ただし、最初の値が見つかった後は、すべての値が含まれる必要があります。 したがって、実際に必要なのは、最初の値がどの列に属しているかを見つけて、それ以降のすべての列を埋めることだけです。
ありがとう!
Re: 値のリストを検索するよくわかりませんが、ただこれをやりたいだけのようですか?
str = "1|'顔'|2|シャトナー|3|スポック|4|タツノオトシゴ" ;
リスト=言葉( str 、 "|" ) ;
n =ナイアイテム(リスト) / 2 ;
索引= 1 :: n ;
偶数=索引* 2 ;
名前 = リスト[偶数] ;
それとも連想配列でしょうか?