如何在 R 中将列表作为参数传递?

jsg*_*483 4 r

我有一个函数fetchWeather(city,month1,year1,...),可以无限组合月/年输入并输出这些时期的天气数据。

我想通过速记进行一些组合,使其更加紧凑。例如,而不是

fetchWeather(Boston,4,2015,5,2015,6,2015,7,2015,8,2015,9,2015,10,2015)
Run Code Online (Sandbox Code Playgroud)

我想做

jv15<- c(4,2015,5,2015,6,2015,7,2015,8,2015,9,2015,10,2015)
Run Code Online (Sandbox Code Playgroud)

然后打电话

fetchWeather(Boston,jv15)
Run Code Online (Sandbox Code Playgroud)

但我无法让它发挥作用。

我对 R 很陌生,我想这是一个非常简单的解决方案,但我似乎无法弄清楚。任何帮助表示赞赏。

小智 6

您的错误可能是 Boston 没有用引号引起来,但假设 Boston 确实是一个变量......

您可以使用“do.call”

接受一个函数和一个列表,并使用该列表作为参数调用函数。

因此,首先您需要将 Boston 添加到您的列表中,然后 do.call。

out.weather <- do.call(fetchWeather, c(Boston,jv15))
Run Code Online (Sandbox Code Playgroud)