짧은 버전: 작업 중인 CSV 파일에는 때때로 쉼표가 포함된 텍스트 문자열이 포함되어 있습니다.
이 테이블을 열기 위해 제가 작성한 JSL은 쉼표 부분에서 문자열을 매우 깔끔하게 분할하고 쉼표 뒤의 부분을 다음 데이터 열로 보냅니다. 즉, 정확히 가지 않는 위치입니다.
Excel에서는 이 파일을 열 때 바로 가져옵니다.
이 하나의 쉼표를 구분 기호가 아닌 문자로 처리하도록 JMP/JSL을 얻을 수 있는 방법이 있습니까?
또는 달리 말하면: 따옴표 안의 쉼표가 잠재적 구분 기호로 무시되도록 아래 스크립트를 조정하는 방법이 있습니까?
상세:
Windows 7에서 실행되는 JMP 13.2.1, 64비트.
csv 파일 발췌:
메모장에서 텍스트로 열면 문제가 되는 행에 다음이 포함됩니다.
...11:00,Skipped,"빛은 버려졌고, 그들은 또 다른 빛을 세울 것입니다",,,,
참고: 테스트 항목 주위의 큰따옴표는 제가 알 수 있는 한 데이터에서 유일한 것입니다.
Excel에 표시되는 내용과 JMP에서 나가기를 희망하는 내용은 다음과 같습니다.
| 열 11 | 열 12 |
| 논평 | 해충 발견 |
| 버려진 빛, 그들은 또 다른 빛을 세울 것이다 | |
대신 JMP가 제공하는 기능은 다음과 같습니다.
| 열 11 | 열 12 |
| 논평 | 해충 발견 |
| 버려진 빛 | 그들은 또 다른 빛을 켤 것입니다 |
열 12/해충 발견은 일반적으로 발견된 곤충, 생쥐 등에 대한 내용을 말하며 댓글의 뒷부분을 표시해서는 안 됩니다. 이 행에서는 비어 있어야 합니다.
테이블을 여는 데 사용하는 스크립트는 다음과 같습니다.
Open(
qfull,
columns(
Column( "Company", Character, "Nominal" ),
Column( "Address", Character, "Nominal" ),
Column( "City", Character, "Nominal" ),
Column( "State", Character, "Nominal" ),
Column( "Zip", Character, "Nominal" ),
Column( "Area", Character, "Nominal" ),
Column( "Device Type", Character, "Nominal" ),
Column( "Device Name", Character, "Nominal" ),
Column( "Date", Numeric, Informat( "m/d/y h:m" ), "Continuous", Format( "ddmonyyyy", 19 )),
Column( "Date", Character, "Nominal"),
Column( "Activity", Character, "Nominal" ),
Column( "Comment", Character, "Nominal" ),
Column( "Pest Findings", Character, "Nominal" ),
Column( "Questions", Character, "Nominal" ),
Column( "Materials", Character, "Nominal" )
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Comma, CSV( 1 ) ),
Strip Quotes( 0 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 7 ),
Data Starts( 8 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
);
따옴표 안의 쉼표가 잠재적 구분 기호로 무시되도록 이 스크립트를 조정하는 방법이 있습니까?
비슷한 문제가 있지만 스크립트 컨텍스트에는 없습니다. CSV 데이터 파일에 연결된 Triple-S 파일을 여는 중입니다. 개방형 데이터는 CSV 표준에 따라 올바르게 인용되지만 JMP는 여전히 인용된 문자열 내부의 쉼표를 필드 구분 기호로 해석합니다.
예:
123456,1,"Lorem ipsum dolor sit amet, consectetuer...",3,5
올바른 5개 열 대신 6개 열로 구문 분석됩니다.
환경 설정에서 텍스트 파일에 대한 다양한 가져오기 설정을 사용해 보았지만 아무런 효과가 없었습니다.
어떤 생각이라도 감사하겠습니다. 감사해요!
시도해 보세요
Strip Quotes<SPAN class="token punctuation">(</SPAN> <SPAN class="token number">1</SPAN> <SPAN class="token punctuation">)</SPAN>