스크립트: 문자열의 접두사를 제거하고 수정된 열을 Excel 파일로 출력합니다.안녕하세요 여러분. 나는 다음의 조언을 따랐습니다. 문자열 분석 공식 파일에 데이터를 쓰는 데 대한 기타 참고 자료는 대부분 청크 텍스트 파일에 적용 가능하지만 다음을 찾았습니다.
Save Excel File()
스크립팅 인덱스의 기능. 마지막 매개변수가 무엇을 의미하는지/무엇을 하는지 모르겠습니다. 설명되지 않았습니다. 즉 말하자면,
Separate Rows for Each Cell Statistic( 1 )
이것이 중요합니까? 이 매개변수의 존재 여부에 관계없이 내가 지정한 위치의 파일에는 아무 것도 쓰지 않습니다.
내 스크립트의 대략적인 개요는 다음과 같습니다.
dt = Current Data Table();
c = Words(:ID, "_");
Write(c);
s = c[2] || "_" || c[3] || "_" || c[4] || "_" || c[5];
Write(s);
s << Save Excel File(
"$DOCUMENTS\temp.xlsx",
Separate Rows for Each Cell Statistic( 1 )
);
그래서 접두사를 제거하고 나머지 4개의 "단어 블록"과 밑줄을 유지하려고 합니다. 이를 문자열 연결을 통해 수동으로 다시 추가합니다. 보다 문자열과 변수 연결 문자열 연결 "||" 참조.
어쨌든 $DOCUMENTS\temp.xlsx에는 파일이 표시되지 않습니다.
그리고, 음, 터미널, 창, 로그라는 항목에서 오류가 발생합니다.
Subscript Range in access or evaluation of 'c[2]' , c[/*###*/2]
왜인지 모르겠습니다. 포함된 Write() 문의 결과로 문자열이나 열이 출력되지 않습니다.
따라서 기본적으로 아무것도 작동하지 않습니다. 제 생각에는 정사각형입니다!
여러분이 생각할 수 있는 팁이 무엇인지 알려주세요.
건배,
마이크
품질 및 프로세스 엔지니어링Re: 스크립트: 문자열의 접두사를 제거하고 수정된 열을 Excel 파일로 출력합니다.열 함수에 데이터 테이블 포인터를 추가하고 해당 열이 있는 테이블인지 확인하세요.
컬럼(dt, :id)
여러 개의 테이블이 열려 있고 JMP가 사용자가 원하는 테이블이 아닌 현재 테이블을 사용하려고 하는 것 같습니다.
하위 집합을 만들면 새 테이블에 대한 테이블 포인터를 얻을 수 있습니다.
dtSubset = dt<Re: 스크립트: 문자열의 접두사를 제거하고 수정된 열을 Excel 파일로 출력합니다.
이것은 훌륭한 프레임워크입니다. 지금 내가 확인한 문제는 매우 간단합니다.
내가 작업 중인 테이블은 전체 테이블 행의 하위 집합입니다. 그리고 Column(:ID)으로 이동하면 열을 찾지 못합니다. 즉,
could not find column{3} in access or evaluation of 'Column' , Column/*###*/(dt:ID)정말 간단해 보이지만 왜 그런지 모르겠습니다. 나는 행의 하위 집합을 사용하고 있기 때문에 그럴 것이라고 생각했는데, 그렇게 해야 했지만 기본 테이블에서 스크립트를 시도하여 그러한 경우인지 알 수 있습니다. 잠시만...
아니요, 전체 데이터 테이블에서도 문제가 있는 것 같습니다.
내 칼럼을 "찾는" 방법에 대한 조언이 있나요?
남자 이름
Re: 스크립트: 문자열의 접두사를 제거하고 수정된 열을 Excel 파일로 출력합니다.
또한 일반적으로 매개변수나 변수를 허용하는 함수가 있는 경우 열을 전달하면 열에 요소별로 함수가 수행됩니까?
아니요. 일반적으로 데이터 테이블의 각 행에 대해 평가할 내용이 필요한 경우 데이터 테이블에 수식 열을 만들거나 각 행에 대해() 반복자.
JMP 16에서는 다음을 도입했습니다. 각각() JSL 데이터 구조를 반복하는 함수: 목록, 연관 배열 또는 행렬.
Re: 스크립트: 문자열의 접두사를 제거하고 수정된 열을 Excel 파일로 출력합니다.또한 일반적으로 매개변수나 변수를 허용하는 함수가 있는 경우 열을 전달하면 열에 요소별로 함수가 수행됩니까?
마이크
Re: 스크립트: 문자열의 접두사를 제거하고 수정된 열을 Excel 파일로 출력합니다.응답해 주셔서 감사합니다. @Thierry_S ! 나는 현재 귀하의 스크립틀릿과 다른 것들을 시험해 보고 있습니다.
이는 대부분의 경우 매우 간단한 것처럼 들릴 수 있지만 단일 값 변수 이상이 포함될 때 디버깅 목적으로 출력을 시각화하는 가장 좋은 방법, 즉 단일 열을 새 데이터 테이블(JSL만 사용), 열을 로그에 인쇄하는 등의 작업을 수행합니다.
기억이 나지 않습니다. 이전에 이런 일을 해본 적이 있어서 그냥 빈칸을 그리는 것일 수도 있지만, 묻는 것이 좀 어리석은 것 같습니다.
다시 한 번 감사드립니다!
마이크
Re: 스크립트: 문자열의 접두사를 제거하고 수정된 열을 Excel 파일로 출력합니다.Excel 파일 저장은 범주형 응답 분석 플랫폼의 특별한 경우라고 생각합니다. 추가 범주형 플랫폼 옵션 . 데이터 테이블을 Excel 파일로 저장하려면 << Save(path)를 사용하면 됩니다.
현재 데이터 테이블의 첫 번째 행에서 생성된 문자열인 하나의 문자열만 Excel 파일에 저장하려고 합니다. 저장하려는 방법과 내용에 따라 다양한 옵션이 있습니다. 아래는 :ID 열 값이 처음 _ 제거되기 전의 문자가 있는 새 값으로 바뀌는 옵션입니다.
Names Default To Here(1);
dt = New Table("Untitled 2",
Add Rows(3),
Compress File When Saved(1),
New Column("ID", Character, "Nominal", Set Values({"1_2_3_4_5_6", "2_3_4_5_6_7", "3_4_5_6_7_8"}))
);
Wait(1);
dt:ID << Set Each Value(
Substr(:ID, Contains(:ID, "_")+1)
);
dt << Save("$DOCUMENTS\test.xlsx");더 나은 접근 방식인 새 값을 사용하여 새 열을 만들 수도 있습니다.
Re: 스크립트: 문자열의 접두사를 제거하고 수정된 열을 Excel 파일로 출력합니다.안녕,
문자열을 다룰 때 나는 문자열 특정 함수(예: Substitute(), Munger(), Right(), Word())를 사용하는 것을 선호하는 경향이 있습니다.
따라서 귀하의 경우 "_" 문자의 첫 번째 인스턴스를 포함하여 IDS 문자열의 첫 번째 부분을 제거하려면 다음 공식을 제안합니다.
Substitute( :IDS, Word( 1, :IDS, "_" ) || "_", "" )
최상의,
TS