URLから入手できるデータをダウンロードする必要があります。
http://www.arpalazio.net/main/aria/sci/basedati/chimici/BDchimici/RM/MedieGiornaliere/RM_PM2.5_ 2019年_gg.txt
異なる年のデータをダウンロードするには、に示すように、URLの年を変更する必要があります赤。 1990年から2021年までのJSLでループを作成し、データをテーブルに入れたいと思います。 私はJSLを初めて使用するので、そのための助けをいただければ幸いです。
これには、ループ(forループ)、URLを作成する方法(eval insert)、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)
);
);
Concatenateは、欠落している値を作成することによって欠落している列を処理できる必要があります。Tryは、存在しないURLを処理する非常に簡単な方法です(少し怠惰です)。
どうもありがとう@jthi 。これは非常に役立ちます。
フォローアップの質問があり、それを手伝ってくれないかと思っていました。 ほぼ同じ方法でデータをダウンロードする必要がある別のデータベースがあります(つまり、URLの年の値を変更します)。 URLは次のとおりです。
https://www.arb.ca.gov/aqmis2/pickdl_hrly.php?param=OZONE&units=007&year=2021&county_name=--COUNTY--&basin=SC-South+Coast&latitude=--PART+OF+STATE--&report= PICKDATA&order = bathin%2Ccounty_name%2Cs.name&submit = Retrieve + Data&ptype = aqd&std15 =&o3switch = new&hours = all&statistic =&qselect = Screened&start_mon = 1&start_day = 1&mon = 12&day = 31&submit = All + Sites&rows = 29
唯一の違いは、このURLからデータを取得するには、そのページの[データを取得]ボタンをクリックする必要があることです。 JSLを介してこれを行う方法はありますか?
私の知る限り、JMPを使用してWebサイトの要素をクリックすることはできませんが、HTTPリクエストを使用してデータを取得できる可能性があります。 このためには、リクエストがどのように行われるかを理解する必要があります(ブラウザの開発者ツールがこれに役立ちます)。
分かりました!知っておくといいです、どうもありがとう。
シーナ