表の要約および重複行の選択で使用される文字列の長さの制限これは参考までに、おそらく質問でもあります。
クライアントは今日、行が重複しているかどうかを判断するために使用される文字列の長さに制限があるかどうか、またはテーブルの要約を行うときに制限があるかどうかを尋ねました。彼女は1つのセルに8000文字の文字列を持っていました。(これは遺伝子マーカーデータでした。)彼女は、データの列にいくつの真の重複があるかを確認したかったのです。どちらも正しい行を報告していませんでした。彼女は弦の長さの問題を疑った。
総当たり攻撃をいくつか行ったところ、テーブルの概要または重複行の選択を実行すると、最初の2000文字のみが比較されることがわかりました。
また、「if(col1 == col2、 "Match"、 "No Match")のようなことをすると、2000文字の制限がないこともわかりました。(つまり、文字列全体(少なくとも8000文字)が比較に使用されているように見えます。)
他の機能については知りません。
したがって、これは長い文字列の比較に注意するための参考資料です...そして質問:これらの場合に2000文字に制限する理由を誰かが知っていますか?
Re:テーブルの概要と重複行の選択で使用される文字列の長さの制限こんにちはジェリー、
ここで推測していますが、顧客がテーブルの概要または重複行の選択で行っていることは不適切だと思います。詳細を教えてください。 8000文字の長さで、A、C、G、Tのみで構成される遺伝暗号ですか? もしそうなら、これは不適切なアプローチになります。彼らは丸い穴に四角いペグをはめ込もうとしているようです。
これに本当にJMPを使用したい場合は、すべての文字の単一の列を作成してから、行間の重複を探す方がよいでしょう。
より重要なのは彼らの目標です。 なぜ彼らは重複を探しているのですか?
Re:テーブルの概要と重複行の選択で使用される文字列の長さの制限良い点クリス。はい、彼らはACGT文字列を見ています。私の印象では、彼女には4文字のグループが2000個あり、すべてが8000文字の文字列にまとめられていました。彼女は、ある8000文字の文字列を別の文字列と比較して重複を探したいということを除いて、それ以上の詳細を提供しませんでした。
ACGT文字列とその使用方法がわからないので、これについて尋ねるのもわかりませんでした。(しかし、私は彼女がJMPゲノミクスに興味を持っているかもしれないことを認識するのに十分知っていました。以前はJMPGに気づいていませんでしたが、今はかじっています!)
彼女が何をしようとしているのか聞いてみます。フィードバックに感謝します!
ジェリー
Re:テーブルの概要と重複行の選択で使用される文字列の長さの制限面白い。 顧客は正しいようです。
dt1=New Table( "2000 characters",
Add Rows( 2 ),
New Column( "Column 1",
Character,
"Nominal",
Formula(
If( Row() == 1,
Repeat( "A", 1999 ) || "1",
Repeat( "A", 1999 ) || "2"
)
),
)
);
//this summary table will have two rows
dt1<< Summary(
Group( :Column 1 ),
Freq( "None" ),
Weight( "None" )
);
dt2=New Table( "2001 characters",
Add Rows( 2 ),
New Column( "Column 1",
Character,
"Nominal",
Formula(
If( Row() == 1,
Repeat( "A", 2000 ) || "1",
Repeat( "A", 2000 ) || "2"
)
),
)
);
//this summary table will have only one row
dt2<< Summary(
Group( :Column 1 ),
Freq( "None" ),
Weight( "None" )
);
賭けます@chungweiいくつかの洞察があります。
Re:テーブルの概要と重複行の選択で使用される文字列の長さの制限確かにジェリー!
比較のために長い刺し傷を調べることができる他の簡単なツール(使用したJSLコードのような)があります。 特に興味深いのは、文字列内の同じ文字が同じ長さであるだけでなく、それらの順序も同じであるということです。 文字の真の複製とそれらの文字の外観の順序。
ただし、すべての文字(この場合はベース/マーカー)が独自の列にあり、それらの列すべてが重複行の選択に使用するように選択されている場合、またはテーブルの要約が機能するはずです(ただし、遅い場合があります)。
通常、これはバイオインフォマティクスの問題であり、人々はそれを解決するためのコードを書くかもしれません。
Re:テーブルの概要と重複行の選択で使用される文字列の長さの制限価値があるのは、列の数式で少なくとも8K文字の文字列を比較しているようです。
以下のスクリプトは、30行のうち27行が3,8001文字の文字列の重複であり、最後の文字のみが異なることを示しています。
Names Default To Here(1);
a = repeat("0", 8000);
x = a ||"X";
y = a || "Y";
z = a || "Z";
vals = {x,y,z};
lis = {};
for(i=1, i<=30, i++,
insertinto(lis, eval(vals[randominteger(3)]));
);
dt = new table("xx", <<NEW column=""></NEW>Re:テーブルの概要と重複行の選択で使用される文字列の長さの制限皆さんありがとう。@brady_bradyそして@Jeff_Perkinson 、あなたの分析は私がしたよりもエレガントですが、私たちは同じ結論に達しました... テーブルの概要と重複行の選択には2000文字の制限がありますが、数式はすべての文字を認識しているようです。
願っています@chungweiいくつかの追加の洞察、おそらくこの制限があるより多くの機能がありますか?
Re:テーブルの概要と重複行の選択で使用される文字列の長さの制限いくつかの場所で、要約、データフィルター、配布に問題があるようです。
たぶんもっと多くの場所で、私は列データを分類するすべての場所をチェックしていません。
ですバグ。