3자리 버전 번호가 데이터 테이블의 날짜로 읽혀지는 것을 방지하려면 어떻게 해야 합니까?JMP 14.2.0에서는 3자리 버전 번호 값이 포함된 열이 포함된 CSV 파일을 읽거나 '열기'하면 해당 값이 날짜로 해석됩니다. 예를 들어 verTest.csv에 다음이 포함된 경우:
Product,Station,Version,Date
Widget,Audio-Test,2.2.2044,3/2/19
Widget,RF-Test,2.2.2045,3/2/20
숫자 데이터 유형, 연속 모델링 유형 및 m/d/y를 사용하여 날짜(예: 2044년 2월 2일 및 2045년 2월 2일)로 읽어오는 버전 값을 제외한 모든 열 값은 예상대로 해석됩니다. 체재. 2자리와 4자리 버전 번호는 문자열로 인식되는 것으로 확인되었습니다.
더 복잡한 점은 어떤 열에 이 형식이 포함될 수 있는지 미리 알 수 없기 때문에 미리 열 유형을 명시적으로 설정할 수 없다는 것입니다. (열기 전에 열 유형을 설정하는 것이 가능하다는 것조차 확실하지 않습니다.) CSV 파일). 그리고 나중에 열 유형을 수동으로 변경하려고 하면 '/' 문자가 구워져 유형을 문자로 변경하면 "2/2/2044" 문자열 값이 남게 되는 것 같습니다.
3자리 버전 번호를 문자, 명목 등의 문자열로 읽을 수 있도록(그리고 m/d/y와 같은 전통적인 형식을 사용하여 날짜를 해석하는 방식에 영향을 주지 않고) 이러한 해석을 금지할 수 있는 방법이 있습니까?
Re: 3자리 버전 번호가 데이터 테이블의 날짜로 읽혀지는 것을 방지하려면 어떻게 해야 합니까?...이런 날짜를 사용할 수 있습니다
<<SET date="" filter=""></SET>
<<CreateWindow with pre-populated date range<<CreateWindow with pre-populated date range<<날짜 범위가 미리 입력된 CreateWindow
Re: 3자리 버전 번호가 데이터 테이블의 날짜로 읽혀지는 것을 방지하려면 어떻게 해야 합니까?그것이 당신에게 효과가 있어서 다행입니다!
구문은 세 가지 목적으로 사용됩니다. 미리 채워진 값으로 대화 상자를 다시 시작하려는 경우 대화 상자의 전체 상태를 기억하고, 가져오기를 실행하고, 가능성을 표시하는 것입니다. 필터는 이러한 모든 것의 예입니다.
<<SET name="" filter=""></SET>
대화창과 비교해 보면,
using <<CreateWindow instead of <<ImportDatausing <<CreateWindow instead of <<ImportData<<
필터를 활성화 및 비활성화하는 확인란이 대화 상자에 있습니다. 위에서는 이름 필터가 활성화되어 있으며 크기 및 날짜 필터는 사용되지 않습니다. 크기 및 날짜 필터의 값은 (1) 실험한 마지막 값 또는 (2) 선택한 파일의 크기 범위 및 날짜 범위입니다. 아마도 (2). 따라서 파일 길이는 아마도 100바이트일 것입니다. 숫자는 JMP 날짜-시간 값입니다. asdate( 3666002110.40841 ) 얻으려면
2020년 3월 2일:13:55:10
해당 줄과 (아마도) 다른 많은 줄을 스크립트에서 삭제할 수 있습니다. 이는 대부분 MFI 사용 방법을 보여주는 기본값입니다.
마지막으로 스크립트가 실제로 수행하는 작업은 MFI(...) 함수가 개체를 반환하는 것입니다. << 데이터 가져오기 맨 끝에 있는 메소드는 객체에게 실제로 데이터를 가져오도록 지시합니다. 스크립팅 인덱스에는 <<를 보여주는 예가 있습니다. 창 만들기 또 다른 방법으로. MFI 개체는 즉시 사용된 다음 <<에서 삭제됩니다. 데이터 가져오기 사례. <<에서 창 만들기 이 경우 창이 닫힐 때까지 MFI 개체가 삭제되지 않습니다. xyz = MultipleFileImport(...);를 사용할 수도 있습니다. 변수 xyz에 메시지를 보냅니다(포함). 데이터 가져오기 그리고 창 만들기 ); 변수가 지워질 때까지 개체는 삭제되지 않습니다. ShowProperties(xyz)는 로그 창에 메시지를 나열합니다. 스크립트에서도 사용됩니다.
Re: 3자리 버전 번호가 데이터 테이블의 날짜로 읽혀지는 것을 방지하려면 어떻게 해야 합니까?안녕 @Craige_Hales ,
제안해 주셔서 정말 감사합니다! 나는 구현했다 다중 파일 가져오기 그리고 그것을 많이 테스트해왔습니다. 문제를 찾을 수 없으며 3자리 숫자로 표시됩니다. 버전 열(및 이와 유사한 다른 항목)은 구분 기호를 그대로 유지하지만 여전히 날짜를 올바르게 읽습니다.
매뉴얼에서 제작한 소스에서 다중 파일 가져오기 , 다음을 얻었습니다.
Multiple File Import(
<<SET folder=""></SET>
이를 내 가져오기 기능에 통합하려면( 길 매개변수로) 처음 두 메서드만 올바르게 입력하면 되었습니다.
Convert_csv_to_jmp = Function( {path},
:
:
// determine folder and file args for Multiple File Import function.
lastSlash = Contains( path, "/", -1 );
dir = Substr( path, 1, lastSlash );
If( Length(dir) == 0,
dir = "./";
);
file = Substr( path, lastSlash+1 );
Write( "Path: ", dir, "\!nFile: ", file, "\!n" );
Multiple File Import(
<<SET folder=""></SET>커뮤니티의 누군가가 이 기능에 대한 좋은 문서에 링크를 걸어주면 감사하겠습니다. 모든 메소드가 수행하는 작업을 이해하고 싶습니다. 예를 들어, 날짜 필터 설정 매우 난해한 주장을 원하는 것 같습니다.
Re: 3자리 버전 번호가 데이터 테이블의 날짜로 읽혀지는 것을 방지하려면 어떻게 해야 합니까?다중 파일 가져오기를 사용하십시오. 날짜 형식을 추측하려고 시도하지 않습니다. 선택한 것이 전부라면 한 번에 하나의 파일을 가져오지만 실제로는 폴더에서 유사한 파일 묶음을 가져오는 것을 목표로 합니다. 프로세스를 반복해야 하는 경우 수동 가져오기에서 소스 스크립트를 살펴보세요.
Re: 3자리 버전 번호가 데이터 테이블의 날짜로 읽혀지는 것을 방지하려면 어떻게 해야 합니까?안녕하세요, 카메론,
당신의 응답을 주셔서 감사합니다. 귀하의 제안에 따라 마지막 가져오기 화면에서 빨간색 화살표 왼쪽에 있는 아이콘을 클릭하여 숫자 데이터 열에서 문자 데이터 열로 변경할 수 있었습니다. 이를 통해 내가 원했던 대로 데이터를 가져왔습니다.

이에 대한 출처는 다음과 같습니다.
Open(
"<SPAN>/Users/st/src/analysis_jmp/</SPAN>testVer.csv",
columns(
New Column( "Product", Character, "Nominal" ),
New Column( "Station", Character, "Nominal" ),
New Column( "Version", Character, "Nominal" ),
New Column( "Date",
Numeric,
"Continuous",
Format( "m/d/y", 10 ),
Input Format( "m/d/y" )
)
),
이는 다음을 나타냅니다. CSV 파일을 열기 전에 열 유형을 설정할 수 있습니다. 그러나 JSL 스크립트 내에서 버전 열만 대상으로 지정하면 문제가 발생합니다. (JSL 버그일까요??)
내 스크립트:</CODE></P><P> </P><PRE><CODE class=" language-jsl">path = "./verTest.csv";<BR />dt = Open(
path,
columns(
New Column( "Version", Character, "Nominal" )
),
결과 소스:
Open(
"/Users/st/src/analysis_jmp/verTest.csv",
columns(<BR /> New Column( "Product", Character, "Nominal" )<BR /> ),
따라서 임포터는 New Column 사양의 이름을 무시하고 단순히 파일에 나타나는 순서대로 가져오는 것처럼 보입니다. ('Product'가 첫 번째 항목입니다. 비슷한 결과를 가진 두 번째 New Column을 추가하여 이 가설을 강화했습니다) .
이것이 작동하더라도 가져오기 전에 열 이름을 알고 있다고 가정합니다. 어떤 경우에는 그렇게 하기 때문에 최소한 이 논리를 적용할 수 있습니다(작동한다고 가정). 그러나 나는 결국 그들 중 일부를 그리워하게 될 것입니다.
일반적으로 날짜가 해석되는 방식을 제한하거나 제약하는 가져오기 옵션이 있기를 바랐습니다(예를 들어 '.' 문자는 m/d/y 구분 기호로 간주되지 않습니다).
Re: 3자리 버전 번호가 데이터 테이블의 날짜로 읽혀지는 것을 방지하려면 어떻게 해야 합니까?안녕 @스티브테리 ,
JMP에서 .csv를 열면 탐색 창에 몇 가지 옵션이 표시되어야 합니다(적어도 Windows의 경우).저는 맥이 없습니다.)데이터(미리보기 사용)를 선택하면 가져온 열의 형식을 수동으로 설정할 수 있습니다.Windows에서의 모습은 다음과 같습니다.

열기를 클릭하면 가져오기에 대한 매개변수를 설정하는 일련의 대화 상자 화면이 표시됩니다.두 번째 화면에서는 미리보기 상단에서 변경하려는 헤더 옆을 클릭하여 해당 열이 문자 열로 가져왔는지 확인할 수 있습니다.원하는 방식으로 가져오면 테이블에서 소스 스크립트를 복사하고 나중에 다시 사용하여 가져오기를 자동화할 수 있습니다.