我需要通过 url 下载可用的数据:
http://www.arpalazio.net/main/aria/sci/basedati/chimici/BDchimici/RM/MedieGiornaliere/RM_PM2.5_ 2019年_gg.txt
下载不同年份的数据,需要修改url中的年份,如图红色的. 我想在 JSL 中编写一个循环,该循环运行从 1990 年到 2021 年,并将数据放入表中。 我是 JSL 的新手,因此非常感谢这方面的任何帮助。
为此,您需要做几件事:循环(for 循环)、构建 url 的方法(eval 插入)、从 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 的相当简单的方法(有点懒)。
据我所知,您无法使用 JMP 单击网站中的元素,但您可以使用 HTTP 请求来获取数据。 为此,您必须弄清楚请求是如何完成的(浏览器的开发人员工具可能对此有所帮助)。