문자열 분할<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕! 문자열을 구문 분석하고 싶습니다. 문자열에 202개의 이진 비트가 있는데 해당 문자열을 반으로 자르고 싶습니다. 나는 문자열의 길이를 찾아 특정 문자 수의 값을 반환하도록 할 수 있다고 믿습니다. 실제로 그것을 사용하여 반으로 자르고 각각 101비트를 가진 두 개의 열을 갖는 방법을 잘 모르겠습니다. 그리고 그것을 얻은 후에는 모든 비트를 자체 열로 분리하고 싶습니다. 그래서 나는 '1' 또는 '0'의 101개 열을 원합니다. 문자 수로 구문 분석하는 방법을 모르겠습니다.
어떤 도움을 주셔서 감사합니다!!
Re: 문자열 분할하기일반적으로 데이터 구성 방식과 JMP 플랫폼이 제공하는 것(또는 제공하지 않는 것) 사이에는 종속성이 있습니다.
나는 당신이 무엇을 원하는지 완전히 이해했는지 확신하지 못하지만 위의 Craige's에 이 코드를 추가하면 가까워질 것이라고 생각합니다.
dt2 = dt << 바꾸어 놓다 (
열( :c1, :c2, :c3, :c4, :c5, :c6, :c7, :c8, :c9, :c10 ),
출력 테이블( "예제의 전치" )
);
DT2 << 그래프 빌더 (
제어판 표시( 0 ),
변수(
X( :레이블 ),
Y( :행 1 ),
Y( :행 2 ),
Y( :행 3 ),
Y( :행 4 ),
Y( :행 5 )
),
요소( 위치( 1 , 1 ), 막대( X, Y, 범례( 12 ) ) ),
요소( 위치( 1 , 2 ), 막대( X, Y, 범례( 13 ) ) ),
요소( 위치( 1 , 삼 ), 막대( X, Y, 범례( 15 ) ) ),
요소( 위치( 1 , 4 ), 막대( X, Y, 범례( 23 ) ) ),
요소( 위치( 1 , 5 ), 막대( X, Y, 범례( 27 ) ) )
);
'Label' 열의 값을 전압으로 조정해야 하며, 'Recode'를 사용하거나 좀 더 JSL을 통해 이를 수행할 수 있습니다. 원하는 것을 얻은 후에는 거기에 도달하는 더 직접적인 방법이 있을 수 있습니다.
Re: 문자열 분할하기감사합니다! 그것은 많은 도움이 되었습니다. 불행히도 그것은 내가 하고 싶었던 일의 시작일 뿐이었고 나머지는 어떻게 해야 할지 잘 모르겠습니다...
그래서 저는 제가 보고 있는 문자열의 절반을 표시해야 합니다. 분할 중인 문자열의 100개 행은 모두 동일한 데이터에 대한 것이며 모든 전반부 문자열의 이름이 동일하고 후반부 문자열도 마찬가지입니다. 그런 다음 두 부분을 별도로 그래프로 그려야 합니다. JMP에서 수동으로 그래프를 그려보니 예상한 대로 나오지 않았습니다. 제가 이 분석을 수행한 방법은 Excel을 통해 이루어졌습니다. Excel을 통해 제가 원하는 대로 그래프가 표시되었기 때문입니다. 기본적으로 x축을 따라 비트가 들어가는 모든 새 열(이 경우 전압)과 y축을 따라 데이터가 필요합니다.
유일한 문제는 JMP에서 이 작업을 수행하는 방법을 알 수 없다는 것입니다. 도움이 필요하세요?
매우 감사합니다!!
Re: 문자열 분할하기이 시도
// 입력 데이터는 비트를 나타내는 문자 1과 0의 문자열입니다.
문자열 = "11110000111000110010";
// 문자열을 중간에서 두 개로 나눕니다.
// 이 하위 문자열은 문자 1에서 시작하여 길이의 절반까지 이어집니다.
firsthalf = Substr( 문자열, 1, 길이( 문자열 ) / 2 );
// 이 하위 문자열은 이전 문자열 바로 뒤에서 시작됩니다.
// 암시적 길이는 끝까지 간다
secondhalf = Substr( 문자열, 1 + 길이( 문자열 ) / 2 );
// 1과 0 비트는 열당 하나씩 이동합니다.
ncols = 길이(전반);
// 새로운 테이블 시작
dt = 새 테이블( "예제" );
// 각 비트에 대해 "c3"과 같은 이름을 가진 열을 추가합니다.
For( i = 1, i <= ncols, i++, // || 연산자는 두 문자열을 결합합니다.
dt << New Column( "c" || Char( i ) ) // i는 숫자, char은 문자열을 만듭니다.
);
// dt의 행에 비트를 추가하는 도우미 함수를 만듭니다.
adddata = Function( {bits}, // 함수에 대한 매개변수
{i, c}, // 지역 변수
dt << addrows( 1 ); // 함수는 dt를 사용하는 것을 알고 있습니다.
For( i = 1, i <= 길이( 비트 ), i++,
c = Column( dt, "c" || Char( i ) ); // 같은 상기와
dt:c = Num( Substr( 비트, i, 1 ) ); // 컬럼에 비트 넣기
);
);
// adddata를 호출할 때마다 dt에 비트 행을 넣습니다.
adddata(전반);
adddata(두 번째 반);
adddata( "1010101010" );
adddata( "1111111111" );
adddata( "0000000000" );
