루프에서 열 만들기<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕,
제 스크립트에는 열을 생성하는 루프가 있고 잘 작동하지만 조금 개선하고 싶습니다. (숫자)|(문자)|(숫자)|(문자) 등의 형식으로 제공되는 데이터가 있습니다. 따라서 대체 데이터 유형이 있으며 일반 형식으로 인쇄하고 싶습니다. 현재 열은 숫자 형식이므로 문자 데이터를 볼 수 없습니다. 하지만 문자 형식으로 변경하면 숫자 데이터 구조가 손실됩니다. 그래서 나는이 루프를 가지고 있습니다 :
For(j = 1, j <= nitems(pinList), j++,
dt2 << 새 열(pinList, 숫자, 연속, 형식("최고",12));
dt2 << New Column(pinList[j++], Character, Nominal);
);
여기서 내 pinList 배열의 모든 열 이름을 정의합니다. 그것은 작동하지만 pinList에서 항목을 복제한다는 사실을 제외하고(이 경우 실제로 나쁜 것은 아닙니다). 실제 문제는 '|'로 구분된 데이터를 구문 분석한 후 다른 루프를 실행하려고 할 때 발생합니다. 새 열에 넣습니다.
(i = 1, i <= nrows(dt2), i++,
one_test_result_list = words(column(dt2,"Test_Result") , "|");
(k = 1, k <= nitems(one_test_result_list), k++,
열(dt2, pinList) = one_test_result_list;
);
);
마지막 줄은 한 번 실행된 다음 pinList의 다음 항목 때문에 중단됩니다.열이 생성될 때 모든 이름이 복제되기 때문에 그 뒤에 "2"가 붙습니다. 이 작업을 수행하는 방법을 모르겠습니다. 나는 pinList 배열에서 내가 원하는 모든 이름을 정의할 수 있지만 숫자와 문자의 교대 열 유형을 원합니다.
도움을 주시면 감사하겠습니다! 감사!!
Re: 루프에서 열 만들기나는 그것의 변형을 시도했지만 두 번째 새 열 행 앞에 j++를 넣었습니다. 또한 구문 분석된 데이터 목록을 단계별로 실행하기 위해 if 문을 사용했습니다. 그래서 다음과 같이 조합했습니다.
을 위한 ( 제이 = 1 , 제이 <= N개 항목 ( 핀리스트 ) , 제이 ++,
dt2 << 새 열 ( 핀리스트 [ 제이 ] , 숫자 , 마디 없는 , 체재 ( "최상의" , 12 ) ) ;
dt2 << 새 열 ( 핀리스트 [ 제이 + 1 ] , 성격 , 명사 같은 ) ; // j+1에 대한 열을 만듭니다.
제이 ++; // 그런 다음 j=j+1을 반복합니다.
) ;
을 위한 ( 나 = 1 , 나 <= N 행 ( dt2 ) , 나 ++,
one_test_result_list = 단어 ( 열 ( dt2 , "검사 결과" ) [ 나 ], "|" ) ;
을 위한 ( 제이 = 1 , 제이 <= N개 항목 ( one_test_result ) , 제이 ++,
만약에 ( 모듈로 ( 제이 , 2 ) == 1 ,
열 ( dt2, 핀리스트 [ 케이 ] ) [ 나 ] = 숫자 ( one_test_result_list [ 케이 ]) ; // 홀수 j에 대해 실행
열 ( dt2, 핀리스트 [ 케이 ] ) [ 나 ] = one_test_result_list [ 케이 ] ; // 짝수 j에 대해 실행
);
);
) ;
이것은 완벽하게 작동합니다. 따라서 숫자 결과가 숫자로 인쇄되고 문자가 일반 형식인지 확인합니다. 도와 주셔서 정말 감사합니다!!
Re: 루프에서 열 만들기안녕 소피아,
스크립트를 올바르게 이해했다면 루프 본문 내에서 j++를 사용하여 문제가 발생한 것 같습니다. j++는 루프가 반복을 완료한 후에만 j를 반복하기 때문입니다.이 문제에 대해 몇 가지 방법을 생각할 수 있습니다.한 가지 방법은 j++를 j+1로 바꾼 다음 j++에 대해 별도의 줄을 추가하는 것입니다.다른 방법은 If() 문을 추가하여 짝수 및 홀수 j에 대한 별도의 명령을 만드는 것입니다.
루프 본문 내에서 i++가 작동하는 방법에 대한 예는 예 1 및 2를 참조하십시오.
이게 도움이 되길 바란다.
여기에 기본 이름 ( 1 ) ;
dt2 = 새 테이블 ( "dt2" , 행 추가 ( 20 ) ) ;
핀리스트 = { "ㅏ" , "비" , "씨" , "디" , "이자형" , "에프" } ;
을 위한 ( 제이 = 1 , 제이 <= N개 항목 ( 핀리스트 ) , 제이 ++,
dt2 << 새 열 ( 핀리스트 [ 제이 ] , 숫자 , 마디 없는 , 체재 ( "최상의" , 12 ) ) ;
dt2 << 새 열 ( 핀리스트 [ 제이 + 1 ] , 성격 , 명사 같은 ) ; // j+1에 대한 열을 생성합니다.
제이 ++; // 그런 다음 j=j+1을 반복합니다.
) ;
을 위한 ( 제이 = 1 , 제이 <= N개 항목 ( 핀리스트 ) , 제이 ++,
만약에 ( 모듈로 ( 제이 , 2 ) == 1 ,
dt2 << 새 열 ( 핀리스트 [ 제이 ] , 숫자 , 마디 없는 , 체재 ( "최상의" , 12 ) ) , // 홀수 j에 대해 실행합니다.
dt2 << 새 열 ( 핀리스트 [ 제이 ] , 성격 , 명사 같은 ) // 짝수 j에 대해 실행합니다.
)
) ;
// 예 1.
을 위한 ( 나 = 1 , 나 <= 10 , 나 ++,
인쇄 ( 나 ) ;
인쇄 ( 나 ++ ) ;
) ;
// 예 2.
을 위한 ( 나 = 1 , 나 <= 10 , 나 ++,
인쇄 ( 나 ) ;
인쇄 ( 나 + 1 ) ;
나 ++;
) ;