表摘要和選擇重複行中使用的字符串長度限制這是僅供參考,也許也是一個問題。
今天,一位客戶詢問用於判斷行是否重複或執行表摘要的字符串長度是否有限制。她在一個單元格中有8000個字符長的字符串。(這是遺傳標記數據。)她想查看一列數據中有多少個真實重複項。兩者均未報告正確的行。她懷疑是字符串長度問題。
我進行了一些蠻力的比較,發現在執行“表摘要”或“選擇重複的行”時僅比較了前2000個字符。
我還發現執行類似“ if(col1 == col2,“ Match”,“ No Match”)的操作沒有2000個字符限制。(換句話說,比較中似乎使用了整個字符串(至少8000個字符)。)
我不知道其他功能。
因此,這是一個僅供參考的FYI,要提防長字符串的比較...還有一個問題:有人知道為什麼在這種情況下我們限制為2000個字符嗎?
關於表摘要和選擇重複行中使用的字符串長度的限制嗨,傑里,
我在這裡進行推測,但是我認為您的客戶使用“表摘要”或“選擇重複的行”正在做的事情是不合適的。您能給我們更多細節嗎? 是8000個字符長且僅包含A,C,G和Ts的遺傳密碼嗎? 如果是這樣,這將是不合適的方法。聽起來好像他們正試圖將一個方形的釘子插入一個圓孔中。
如果他們真的想為此使用JMP,最好將每個字符都做成一列,然後在行之間查找重複項。
更重要的是他們的目標。 他們為什麼要尋找重複項?
關於表摘要和選擇重複行中使用的字符串長度的限制克里斯好點。是的,他們正在查看ACGT字符串。我的印像是,她有2000個4個字符的組,全部串在一起形成8000個字符串。除了想將一個8000字符串與另一個字符串進行比較並尋找重複項外,她沒有提供更多細節。
由於我不了解ACGT字符串及其使用方式,因此我不知道這個問題。(但是,我確實知道足以讓她對JMP Genomics感興趣。他們以前不知道JMPG,但現在正在ni食!)
我會問她想做什麼。感謝您的反饋!
傑瑞
關於表摘要和選擇重複行中使用的字符串長度的限制有趣的。 看來客戶是對的。
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" )
);
我打賭ch會有一些見識。
關於表摘要和選擇重複行中使用的字符串長度的限制果然傑里!
還有其他一些簡單的工具(就像您使用的JSL代碼一樣),可以對較長的字符串進行比較。 特別令人感興趣的是,字符串中的相同字符不僅長度相同,而且順序也相同。 這些字符的字符和順序外觀為真副本。
但是,如果每個字符(在這種情況下為基數/標記)都在其自己的列中,然後選擇所有這些列以用於選擇重複的行或表摘要應該起作用(但可能會很慢)。
通常這是一個生物信息學問題,人們可能會編寫代碼來解決它。
關於表摘要和選擇重複行中使用的字符串長度的限制值得一提的是,列公式似乎可以比較至少與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>關於表摘要和選擇重複行中使用的字符串長度的限制謝謝大家@brady_brady和@傑夫·珀金森,您的分析比我做的還要優雅,但是我們得出了相同的結論... “表摘要”和“選擇重複行”的上限為2000個字符,但公式似乎可以識別所有字符。
希望的ch會有更多的見解,也許會有更多具有此限制的功能?
關於表摘要和選擇重複行中使用的字符串長度的限制看起來這是一個問題,在幾個地方,摘要,數據過濾器,分發。
也許在更多的地方,我還沒有檢查所有對列數據進行分類的地方。
這是一個錯誤。