나는 S로 시작하는 특정 열을 바꿀려고 시도하고있다. (그리고이 열만이 내 데이터 세트에있는 S로 시작한다. 때로는 다른 열보다 S 열이 더 많아서 S로 시작하는 열 목록을 만들어야하므로이 목록을 조인 코드에 전달할 수 있습니다. 물론 다른 헤더가있는 열이 있습니다.
나는 같은 것을 묻고있는 적어도 2 개의 다른 해결 된 포스트를 본다. 링크 1 과 링크 2 )하지만 난 결과를 복제하는 데 문제가 있고 JMP14 같은 동작하지 않는 경우 또는 어쩌면 내가 잘못하고있어 궁금하네요?
내 코드는 아래에 있지만 실행하면 오류가 발생합니다. 내 표본이 첨부되어 있습니다.
하위 문자열 : 'AllCols [i]', AllCols [/ * ### * / i]의 액세스 또는 평가에서 문자열 또는 숫자가 아닙니다.
다음 스크립트에서 / * ### * /
For (i = 1, i = N Items (AllCols), i ++,
만약(
Substr (AllCols [/ * ### * / i], 1, 1) == "S"&
Missing (Num (Substr (AllCols [i], 2))) == 0,
삽입 대상 (ColList, Num (Substr (AllCols [i], 2)))
)
)
dt= current data table();
AllCols = dt << get column names;
ColList = {};
For( i = 1, i <= N Items( AllCols ), i++,
If( Substr( AllCols[i], 1, 1 ) == "S" & Is Missing( Num( Substr( AllCols[i], 2 ) ) ) == 0,
Insert Into( ColList, Num( Substr( AllCols[i], 2 ) ) )
);
);
// Create Column Lists
For(i=1,i<=nItems(ColList),i++,
ColList[i]=column("S" || char(ColList[i]));
);
Jim, 그래서 열 이름을 문자열로 정의하는 것이 빠졌던 한 가지 핵심적인 것 같습니다. 고맙습니다!
당신은 당신이 필요로했던 것보다 더 많은 일을하고있었습니다. 다음은 코드 재 작업입니다.
dt = Current Data Table();
AllCols = dt << get column names( string );
ColList = {};
For( i = 1, i <= N Items( AllCols ), i++,
If( Substr( AllCols[i], 1, 1 ) == "S" & Is Missing( Num( Substr( AllCols[i], 2 ) ) ) == 0,
Insert Into( ColList, AllCols[i])
)
);
dt2 = dt << Transpose(
columns( eval( ColList )));