- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 직접 링크 가져오기
- 인쇄
- 부적절한 컨텐트 신고
JSL에서 루프 작성에 대한 도움말
URL을 통해 사용할 수 있는 데이터를 다운로드해야 합니다.
http://www.arpalazio.net/main/aria/sci/basedati/chimici/BDchimici/RM/MedieGiornaliere/RM_PM2.5_ 2019년 _gg.txt
다른 연도의 데이터를 다운로드하려면 다음과 같이 URL의 연도를 변경해야 합니다. 빨간색 . 1990년부터 2021년까지 실행되는 루프를 JSL로 작성하고 데이터를 테이블에 넣고 싶습니다. 저는 JSL을 처음 사용하므로 이에 대한 도움을 주시면 감사하겠습니다.
원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.
채택된 솔루션
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 직접 링크 가져오기
- 인쇄
- 부적절한 컨텐트 신고
Re: JSL에서 루프 작성에 대한 도움말
이를 위해서는 루프(for-loop), URL을 빌드하는 방법(평가 삽입), URL에서 데이터를 로드하는 방법(올바른 인수로 열기) 및 데이터를 결합하는 방법(연결)이 필요합니다.
Names Default To Here(1);
//We can use Eval Insert to replace ^temp_year^ in the string
dl_url = "http://www.arpalazio.net/main/aria/sci/basedati/chimici/BDchimici/RM/MedieGiornaliere/RM_PM2.5_^temp_year^_gg.txt";
dt = New Table(); //table to collect results
//for-loop
For(i = 1990, i <= 2021, i++,
temp_year= Char(i);
year_url = Eval Insert(dl_url);
//downloaded first one file by hand -> opened in JMP to get Open with correct parameters and replaced file path with URL
Try(
dt_temp = Open(
year_url,
Import Settings(
End Of Line(CRLF, CR, LF),
End Of Field(Spaces, Space, CSV(0)),
Strip Quotes(1),
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(1),
Data Starts(2),
Lines To Read("All"),
Year Rule("20xx")
)
);
dt << Concatenate(dt_temp, Append to first table(1));
Close(dt_temp, no save);
,
Show(exception_msg)
);
);
연결은 누락된 값을 생성하여 누락된 열을 처리할 수 있어야 하며 Try는 존재하지 않는 URL을 처리하는 매우 쉬운 방법입니다(약간 게으름).
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 직접 링크 가져오기
- 인쇄
- 부적절한 컨텐트 신고
Re: JSL에서 루프 작성에 대한 도움말
이를 위해서는 루프(for-loop), URL을 빌드하는 방법(평가 삽입), URL에서 데이터를 로드하는 방법(올바른 인수로 열기) 및 데이터를 결합하는 방법(연결)이 필요합니다.
Names Default To Here(1);
//We can use Eval Insert to replace ^temp_year^ in the string
dl_url = "http://www.arpalazio.net/main/aria/sci/basedati/chimici/BDchimici/RM/MedieGiornaliere/RM_PM2.5_^temp_year^_gg.txt";
dt = New Table(); //table to collect results
//for-loop
For(i = 1990, i <= 2021, i++,
temp_year= Char(i);
year_url = Eval Insert(dl_url);
//downloaded first one file by hand -> opened in JMP to get Open with correct parameters and replaced file path with URL
Try(
dt_temp = Open(
year_url,
Import Settings(
End Of Line(CRLF, CR, LF),
End Of Field(Spaces, Space, CSV(0)),
Strip Quotes(1),
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(1),
Data Starts(2),
Lines To Read("All"),
Year Rule("20xx")
)
);
dt << Concatenate(dt_temp, Append to first table(1));
Close(dt_temp, no save);
,
Show(exception_msg)
);
);
연결은 누락된 값을 생성하여 누락된 열을 처리할 수 있어야 하며 Try는 존재하지 않는 URL을 처리하는 매우 쉬운 방법입니다(약간 게으름).
원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 직접 링크 가져오기
- 인쇄
- 부적절한 컨텐트 신고
Re: JSL에서 루프 작성에 대한 도움말
정말 감사합니다 @jthi .이것은 매우 도움이 됩니다.
후속 질문이 있는데 도와주실 수 있는지 궁금합니다. 거의 동일한 방법(예: URL의 연도 값 변경)으로 데이터를 다운로드해야 하는 다른 데이터베이스가 있습니다. URL은 다음과 같습니다.
유일한 차이점은 이 URL에서 데이터를 가져오려면 해당 페이지에서 "데이터 가져오기" 버튼을 클릭해야 한다는 것입니다. JSL을 통해 이를 수행할 수 있는 방법이 있습니까?
원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 직접 링크 가져오기
- 인쇄
- 부적절한 컨텐트 신고
Re: JSL에서 루프 작성에 대한 도움말
내가 아는 한 JMP로 웹 사이트의 요소를 클릭할 수 없지만 HTTP 요청을 사용하여 데이터를 가져올 수 있습니다. 이를 위해서는 요청이 어떻게 수행되는지 파악해야 합니다(브라우저의 개발자 도구가 도움이 될 수 있음).
원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 직접 링크 가져오기
- 인쇄
- 부적절한 컨텐트 신고
Re: Help with writing a loop in JSL
I see! good to know, thanks a lot.
Sina
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 직접 링크 가져오기
- 인쇄
- 부적절한 컨텐트 신고
Re: Help with writing a loop in JSL
Yes, the developer tools make this easier than learning HTML Forms.
Using web browser developer tools to examine the link that was used to download a file
The link has parameters, which you can modify with JSL before opening it with open(). FF shown above, chrome is similar, but arranged differently.
Your original link requested 12 months of data. The site did not want to send that much, I stopped at 31jan instead of 31dec.
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 직접 링크 가져오기
- 인쇄
- 부적절한 컨텐트 신고
Re: Help with writing a loop in JSL
@Craige_Hales This is immensely helpful and saves me a lot of time. Thanks a lot!!!