如何从 r 中的包循环特定函数?

How do I loop a specific function from a package in r?

我有这样的日期列表。

OnlyDates [1] "2018-01-22" "2018-01-22" "2018-01-22" "2018-01-22" "2018-01-22" "2018-01-22" "2018-01-22" "2018-01-22" "2018-01-22" "2018-01-22" "2018-01-22" [353] "2018-09-25" "2018-09-25" "2018-09-25" "2018-09-25" "2018-09-25" "2018-09-25" "2018-09-25" "2018-09-25" "2018-10-10" "2018-10-10" "2018-10-10" [364] "2018-10-10" "2018-10-10" "2018-10-10" "2018-10-10" "2018-10-10" "2018-10-10" "2018-10-10" "2018-10-10" "2018-10-10" "2018-10-10" "2018-10-10"

我想循环计算特定日期的光周期小时数的函数,并将其打印在另一个名为“光周期”的列中。该函数从包 'geosphere'

中调用 'daylength'

他们正在尝试这样的事情:

for (i in OnlyDates {print(daylength(-43.39, "i"))})

-43.39为纬度,"i"应为日期写为:"2021-08-05"

单独的函数示例:

daylength(-43.39, "2021-08-05")

哪个returns [1] 9.897292

相反,使用我的代码我得到:

Error in h(simpleError(msg, call)) : error in evaluating the argument 'x' in selecting a method for function 'print': character string is not in a standard unambiguous format

任何人都可以对此有所了解吗? 谢谢, 狮子座

使用不带引号的 i(不是 "i")。

此外 for 循环中的括号位置错误。你应该先结束迭代条件,然后定义 body

for (i in OnlyDates) {print(daylength(-43.39, i))}