안녕하세요-다소 관련된 두 가지 질문
나는 SPLIT를 사용하여 긴 파일을 넓은 파일로 변환했지만, 넓은 파일을 긴 파일로 쌓거나 옮기고 싶은 약간 더 복잡한 상황이 있습니다.
고유 한 주제 ID가있는 데이터 세트와 수백 개의 열 / 변수가 있습니다. 변수 이름은 1 년차가 '2'로 끝나고 2 년차가 '3'으로 끝나는 것을 제외하면 똑같습니다.이 파일을 길게 만드는 비교적 간단한 방법으로 시간 변수 (1, 2,3,4) 그리고 변수 이름은 끝에 숫자가없는 한 번만 존재합니까?
관련이 있지만 다른 방식으로 위의 데이터 세트에 접근하면 JMP에서 모든 XXX 백 열에 대해 알리는 수식을 만들고 끝에서 # (예 : 1, 2)을 제거하는 방법이 있습니다. 열 / 변수 이름? 분명히 수동으로 할 수는 있지만 영원히 걸릴 것입니다.
정말 고마워!
다음은 3 개의 열이있는 누적 데이터 테이블을 생성하는 스크립트입니다.

다음은 데이터 테이블의 열 끝에서 숫자 번호를 제거하는 스크립트입니다.열 이름을 바꿀 때 최종 결과가 이전 열 이름과 동일한 열 이름이면 JMP는 숫자 값을 추가하여 새 열 이름을 고유 한 이름으로 만듭니다.
Names Default To Here( 1 );
dt = Current Data Table();
For( i = 2, i <= N Cols( dt ), i++,
if(
is missing(
Num(
word(
-1,
Lowercase( Column( dt, i ) << get name )
,
"abcdefghijklmnopqrstuvwxyz;:, -_)(")
)
) == 0,
Column( dt, i ) <<
set name(
substr(
Column(dt,i)<<GET name=""></GET>
Names Default To Here( 1 );
dt = new table( "Example",
add rows( 10 ),
New Column( "Year2", formula( Random Integer( 1, 100 ) ) ),
New Column( "Year3", formula( Random Integer( 1, 100 ) ) ),
New Column( "Year4", formula( Random Integer( 1, 100 ) ) )
);
dtStack = Data Table( "Example" ) << Stack(
columns( :Year2, :Year3, :Year4 ),
Source Label Column( Column ),
Stacked Data Column( "Data" )
);
dtStack << New Column( "Year",
formula(
Num(
Word(
-1,
Lowercase( :Column ),
"abcdefghijklmnopqrstuvwxyz;:, -_)("
)
)
)
);
dtStack:Year << delete formula;
for each row(
:Column = substr(
:Column,
1,
Length( :Column ) - Length(
Word(
-1,
Lowercase( :Column ),
"abcdefghijklmnopqrstuvwxyz;:, -_)("
)
)
)
);답장 해 주셔서 감사합니다.기억력이 도움이된다면 작년에 질문으로 저를 도왔습니다.
불행히도 나는 JMP 스크립트에 정통하지 않고 단지 가리키고 클릭합니다.그리고 변수가 많기 때문에 알아낼 수 있다고해도 각각에 대해 해당 코드를 실행해야합니다. 그렇지 않습니까?