테이블 요약 및 중복 행 선택에서 사용되는 문자열 길이 제한이것은 FYI이며 아마도 질문이기도합니다.
클라이언트는 오늘 행이 중복되는지 또는 테이블 요약을 수행 할 때 사용되는 문자열 길이에 제한이 있는지 물었습니다.그녀는 단일 셀에 8000 자 길이의 문자열이있었습니다.(이것은 유전자 마커 데이터였습니다.) 그녀는 데이터 열에 얼마나 많은 실제 복제가 있는지 확인하고 싶었습니다.둘 다 올바른 행을보고하지 않았습니다.그녀는 문자열 길이 문제를 의심했습니다.
몇 가지 무차별 대입 비교를 수행 한 결과 테이블 요약 또는 중복 행 선택을 수행 할 때 처음 2000 자만 비교된다는 사실을 발견했습니다.
또한 "if (col1 == col2,"Match ","No Match ")와 같은 작업은 2000 자 제한이 없다는 것을 발견했습니다.(즉, 전체 문자열 (최소 8000 자 이상)이 비교에 사용 된 것으로 보입니다.)
다른 기능에 대해서는 잘 모릅니다.
그래서 이것은 긴 문자열의 비교를 조심하는 FYI입니다 ... 그리고 질문 :이 경우 왜 우리가 2000 자로 제한하는지 아는 사람이 있습니까?
Re : 테이블 요약 및 중복 행 선택에서 사용되는 문자열 길이 제한안녕 제리,
여기에서 추측하고 있지만 고객이 Table Summary 또는 Select Duplicate Rows를 사용하여 수행하는 작업이 부적절하다고 생각합니다.더 자세한 정보를 알려주시겠습니까? 길이가 8000 자이고 A, C, G, T로만 구성된 유전자 코드입니까? 그렇다면 이것은 부적절한 접근 방식입니다.둥근 구멍에 정사각형 못을 맞추려는 것 같습니다.
실제로 JMP를 사용하고 싶다면 모든 문자의 단일 열을 만든 다음 행 사이의 중복을 찾는 것이 좋습니다.
더 중요한 것은 그들의 목표입니다. 왜 그들은 중복을 찾고 있습니까?
Re : 테이블 요약 및 중복 행 선택에서 사용되는 문자열 길이 제한좋은 지적 크리스.예, 그들은 ACGT 문자열을보고 있습니다.내 인상은 그녀가 4 개의 문자로 구성된 2000 개의 그룹을 가지고 있었고 모두 8000 개의 문자열로 묶여 있었다는 것입니다.그녀는 하나의 8000 문자열을 다른 문자열과 비교하고 중복을 찾는 것 외에는 더 자세한 정보를 제공하지 않았습니다.
ACGT 문자열과 사용 방법을 모르기 때문에 이것에 대해 물어볼 줄 몰랐습니다.(그러나 나는 그녀가 JMP Genomics에 관심이 있다는 것을 충분히 알고있었습니다.그들은 이전에 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" )
);
장담한다 뿡뿡 약간의 통찰력을 갖게 될 것입니다.
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 : 테이블 요약 및 중복 행 선택에서 사용되는 문자열 길이 제한모두 감사합니다.헉헉 과 안녕하세요. , 당신의 분석은 내가 한 것보다 더 우아하지만 우리는 같은 결론에 도달했습니다 ... 테이블 요약 및 중복 행 선택에서 2000 자 제한이 있지만 수식은 모든 문자를 인식하는 것 같습니다.
희망 헉 이 제한이있는 더 많은 기능을 추가 할 수 있습니까?