좋아, 이것은 아마도 매우 쉬운 질문처럼 들릴지 모르지만, 나는 힘든 시간을 보내고있다.
그래서 나는 다음과 같이 포맷 된이 데이터를 가지고있다. (number) | (name) | (number) | (name) | (number) .... 기타 문자열을보고 구분 기호 ( '|')로 정보를 구문 분석 한 다음 새 목록 (모든 "이름")의 다른 항목을 모두 가져 와서 새 목록에있는 항목 만 넣는 루프가 있습니다. 그런 다음 새 목록을 사용하여 전체 열을 만듭니다. 내가 발견 한 것은 그 문자열과 각 열에서 사용하는 숫자 값이 기술적으로 문자이므로 열에 수식을 사용하려고하면 모든 것이 점으로 찍히게됩니다. 내가해야 할 일은 새로운 컬럼을 만들고 그 컬럼에 공식을 사용하는 것입니다. 내 질문은 : 내가 원하는 모든 열 이름의 목록이 이미있다. 같은 이름의 새 열을 만들고 형식을 처리 할 수있는 열로 만드는 초기 열을 바꿀 수있는 방법이 있습니까?
그 질문은 정말로 이상 할 수도 있습니다. 여기에 파싱 / 컬럼 작성을 처리하는 스크립트가 있습니다 :
목록 = {};
// 첫 번째 행을 반복합니다. Test_Result를 사용하여 핀 이름을 가져옵니다.
one_test_result_list = words (column (dt2, "Test_Result") [1], "|");
(j = 1, j <= nitems (one_test_result_list) / 2, j ++,
할당 (List, one_test_result_list [j * 2]);
);
// 핀리스트의 새로운 열을 만든다.
(g = 1, g <= nitems (List), g ++,
dt2 << 새 열 (목록, 숫자, 연속, 형식 ( "최상", 12));
);
// 다음 행을 반복합니다 : Test_Result (문자열이 저장된 곳)
For (i = 1, i = nrows (dt2), i ++,
one_test_result_list = words (column (dt2, "Test_Result")) , "|");
(k = 1, k
// 새로이 파싱 된 모든 결과를 새로운 값으로 저장한다.
열 (dt2, 목록) = num (one_test_result_list [(k * 2) +1]);
);
);
이것은 완벽하게 작동합니다, 나는 새로운 컬럼의 모든 것을 만드는 것에 대해 알아 냈습니다 ... 나는 그들에게 내가 이미 그들에게 주었던 컬럼 이름을 갖기를 원한다. 단지 모든 값을 점으로 바꾸지 않고 그 포맷을 넣을 수 있기를 원한다. (나는 이것을 새로운 컬럼에서 테스트했고 값은 실제로 올바르게 바뀌었다 ....)
정말 고맙습니다!
미안, 나는 이상하게 그 말을했다. 내 문자열에서 첫 번째 숫자는 무시됩니다 (쓸모가 없기 때문에). 그런 다음 이름 앞에 값이옵니다. 나는 새로운리스트를 생성한다. 단지 모든 이름을 수집하고, 그리스트를 사용하여 모든 새로운 컬럼 이름을 채운다. 나는 열을 숫자 값으로 설정하고 열을 해당 숫자 값으로 num으로 채 웁니다. 이 코드에서 볼 수 있듯이 (특히 굵게 표시된 줄) :
// 핀리스트의 새로운 열을 만든다.
(g = 1, g <= nitems (List), g ++,
dt2 << 새 열 (목록, 숫자, 연속, 형식 ( "최상", 12));
);
For (i = 1, i = nrows (dt2), i ++,
one_test_result_list = words (column (dt2, "Test_Result")) , "|");
(k = 1, k
// 새로이 파싱 된 모든 결과를 새로운 값으로 저장한다.
열 (dt2, 목록) = num (one_test_result_list [(k * 2) +1]);
);
);
값을 숫자와 열로 지정해도 그 열에 대해 모든 종류의 연산을 수행 할 때마다 (즉 모든 열을 절대 값으로 만들 때마다) 해당 열의 값이 점으로 바뀝니다. . 그러나 새 열을 만들고, 내가 만든 첫 번째 열의 값을 가져 와서 해당 열의 수식을 설정하면 제대로 작동하고 동작을 보여줍니다. 처음에는 값을 저장하는 데 필요한 열의 수를 두 배로 늘린 다음 수식을 사용하는 또 다른 열을 만들어야합니다. 내가 만든 첫 번째 열에 수식을 사용할 수는 없습니다. 문제는 처음에 할당 한 열 이름을 유지하려고합니다. 왜 JMP가 새로운 열에 대한 작업을 수행하지 못하게하는지 모르겠습니다.
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />귀하의 문제를 완전히 이해하고 있는지 확신 할 수 없지만 " 그 문자열과 각 열에서 사용하는 숫자 값은 기술적으로 문자이므로 열에서 수식을 사용하려고하면 모든 것이 점으로 찍 힙니다. "몇 가지 제안합니다. . .
JMP 열의 데이터 유형은 필수 유형의 데이터를 보유하고 '열 정보 ...'대화 상자를 통해 또는 JSL 메시지 'myCol << DataType (')을 통해 'Numeric'또는 'Character'로 정의 할 수 있습니다. "Numeric") 또는 myCol << DataType ( "Character") ') 원하는 값으로 설정해야합니다. 열을 값으로 채울 때 'Char ()'( 'Num ()'사용)를 사용하여 숫자에서 문자 값 (문자에서 숫자 값)으로 변환 할 수 있습니다. JMP가 숫자로 해석 할 수없는 텍스트 값에 'Num ()'을 사용하면 누락 된 값 ( '.')이 지정됩니다.