데이터 테이블의 열 머리글을 검색하는 JSL 루프가 필요합니다. 열 머리글에 "(rad)"가 있으면 해당 열의 모든 값을 180/pi로 곱한 후 열 머리글의 "(rad)"를 "(deg)"로 변경하고 싶습니다.
저는 chatGPT를 포함해서 제가 생각할 수 있는 모든 것을 다 시도해 보았지만 지금까지 아무런 소용이 없습니다.
- << 열 이름 가져오기를 사용하여 모든 열 가져오기
- << 데이터 업데이트 시작을 사용하여 테이블을 업데이트하지 않도록 설정
- For Each를 사용하여 반복합니다.
- 포함/시작/끝을 사용하여 이름에 (rad)가 포함되어 있는지 확인하세요.
- For Each Row를 사용하여 반복하고 값을 각도로 변경합니다.
- 더 나은 방법이 있기를 바라지만 새 열을 만들고 이전 열을 삭제 하려는 경우가 아니면 실제로 그런 방법이 있는지 잘 모르겠습니다. 각 값을 설정하는 <<를 사용하면 매우 쉽게 작업하고 읽을 수 있기 때문입니다.
- 제자리에 공식 적용(JMP18에 추가됨)이 작동할 수 있지만 사용 방법을 이해하기 어렵습니다.
- 행렬 값을 사용하는 것은 좋은 옵션 중 하나이지만 각 행에 대해 사용하는 것은 항상 작동하므로 항상 배우는 것이 좋습니다.
- 대체 및 << 이름 설정을 사용하여 열 이름을 바꾸세요.
- << end data update를 사용하여 테이블을 다시 업데이트하세요.
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(2),
Compress File When Saved(1),
New Column("Column 1", Numeric, "Continuous", Format("Best", 12), Set Values([., .])),
New Column("a (rad)", Numeric, "Continuous", Format("Best", 12), Set Values([1, .]))
);
colnames = dt << Get Column Names(Continuos, "String");
dt << Begin Data Update();
For Each({colname}, colnames,
If(Contains(colname, "(rad)"),
For Each Row(dt, Column(dt, colname)[] = Column(dt, colname)[] * 180 / Pi());
Column(dt, colname) << Set Name(Substitute(colname, "(rad)", "(deg)"));
)
);
dt << End Data Update();
Write();