<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />나는이 달 전에 물어 보았지만, 나는 너무 길어서 나의 설명에 집착이 없었다. 그런 다음 설명을하기 전에 과제물을 가져 왔습니다. 여기에 내가 원하는 것과 작동하지 않는 것을 설명하기위한 희망적인 시도가 있습니다.
내가하고있는 일 : 나는 열 이름이 결코 가지지 않겠지 만 끊임없이 변화하는 거대한 데이터 세트를 사용하는 스크립트를 만들고있다. 다양한 요약과 수식을 수행해야합니다. 내 전략은 몇 가지 요약 테이블을 사용하여 내가 가진 데이터 범주를 결정하는 것입니다. 아래 예제는 내가하려는 일의 위대한, 단순한 예입니다. 그것은 큰 class.jmp 파일을 사용하고 성 카테고리를 찾고 있습니다. "M", "F"카테고리를 알고 나면 각 변수 카테고리에 대해 새로운 컬럼을 생성합니다.이 경우에는 Example -F, 다음과 같이 Example-M을 추가합니다. 각 새로운 컬럼 내에서 다른 카테고리를 참조하는 수식이 있습니다 새로 작성된 열을 참조하는 행 계산을 수행합니다.
내 문제 : 열 참조를 작동시킬 수 없습니다. 특히 수식이 만들어지는 동일한 열을 호출하는 변수 . 아래 참조
//스타트
try (close (dt, No save));
시도 (닫기 (dt_categories, 저장 안함));
시도 (닫기 (dt_data, 저장 안함));
명확한 전역 ();
dt = 열기 ( " 통로 \ big_class.jmp ");
// 성별 목록을 만들고 이름을 대체합니다. 여기에는 문제가 없습니다.
dt_categories = dt << 요약
그룹 (: SEX),
통계 열 이름 형식 ( "열"),
출력 테이블 이름 ( "Gender_Summary"));
genderlist = dt_categories : 섹스 << 값 가져 오기;
gendercount = nrows (dt_categories);
dt_data = dt << 분할 ((: SEX), 분할 (: HEIGHT), 출력 테이블 ( "Split_Big_Class"), 남아있는 열 (모두 삭제)
);
For (i = 1, i <= gendercount, i ++,
// oldcol은 genderlist에서 생성되지만 새로운 dt_data의 열 이름을 나타내며 내 수식이이를 참조합니다. 여기에는 문제가 없습니다.
올콜 = 열 (genderlist );
// 새로운 열의 이름을 기존 (이전) 열과 다른 이름으로 지정해야합니다. 그렇지 않으면 jmp가 이름을 증가시키고 실제로 열 이름 참조를 엉망으로 만드는 것처럼 보입니다. 여기에는 문제가 없지만 나는 생각하지 않습니다.
newcolname = ( "Example-"|| genderlist );
// 다음으로, 먼저 열을 만들려고 했으므로 후속 수식은 이미 존재하는 열을 참조 할 수 있지만 이것이 필요한지는 알 수 없습니다.
뉴 콜 = dt_data << 새 열 ( newcolname , 숫자);
// 다음 줄은 함수식이지만 내 변수를 참조로 사용하지 않습니다. 너 내가하고 싶은 걸 볼 수있어.
// newcolname << 수식 (If (Row () == 1, 1 + : F, : Name ( "Example-F") [Row () - 1, Empty ()] + 1));
// 위의 함수 수식에 변수를 삽입하려고했기 때문에 다음 줄이 작동하지 않는 수식입니다. 이것은 오류를 던지고있는 곳입니다.
newcolname << 수식 (If (Row () == 1, 1 + 올콜 , 뉴 콜 [Row () -1, Empty ()] +1));
);
어떤 제안? 나는 스크립팅에 익숙하지 않고 내가 배우는대로 배우려고 노력하고있다. 감사!!!!!
미안 해요, 당신이 생산 하려던 것을 보여주는 당신의 라인을 놓쳤습니다.
이 시도:
dt1 = Open ( "$ SAMPLE_DATA / Big Class.JMP");
요약하다 (categories = by (: SEX));
dt2 = dt1 << 분할 ((: SEX), 분할 (: HEIGHT), 출력 테이블 ( "Split_Big_Class"), 남아있는 열 (모두 삭제));
for (i = 1, i <= n 항목 (범주), i ++,
dt2 << newColumn ( "예제 -"|| 카테고리 , 캐릭터, 공식(
(Row () == 1이면,
1 + asColumn (카테고리 ),
asColumn ( "Example-"|| 카테고리 ) [Row () - 1] +1
);
);
);
);
수식을 만들고 싶은 단어를 설명해 주시겠습니까?
이전 행 데이터를 기반으로 값을 만들려고하는 것처럼 보입니다.
가능하다면 예를 들어 최종 결과를 원하는대로 정교 히한다면 그것은 좋을 것입니다.