【问题标题】:How do I loop a specific function from a package in r?如何从 r 中的包中循环特定函数?
【发布时间】:2021-10-10 04:51:15
【问题描述】:

我有这样的日期列表。

仅限日期 [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"

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

我正在尝试这样的事情:

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

-43.39是纬度,“i”应该是日期写成:“2021-08-05”

单独的函数示例:

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

返回 [1] 9.897292

相反,我的代码是:

h(simpleError(msg, call)) 中的错误: 在为函数“print”选择方法时评估参数“x”时出错:字符串不是标准的明确格式

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

【问题讨论】:

  • 你不能简单地做daylength(-43.39, c("2021-08-05", "2018-01-22", "2018-10-10"))吗?

标签: r function loops package geosphere


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢!我是一个有循环的新手。这有效
  • 但我仍然无法将结果打印到新向量中
  • “打印成矢量”是什么意思?将结果分配给向量尝试vector <- daylength(-43.39, OnlyDates)
猜你喜欢
  • 2015-07-09
  • 1970-01-01
  • 1970-01-01
  • 2015-04-12
  • 1970-01-01
  • 1970-01-01
  • 2019-09-15
  • 2021-02-16
相关资源
最近更新 更多