我是 purrr 的新手,并且很难理解如何将我的函数结果附加到我的数据帧上(并获得最佳性能,因为我的数据帧很大)。
我正在尝试计算数据框中每一行的日出时间:
library(tidyverse)
library(StreamMetabolism)
test <- structure(list(Latitude = c(44.49845, 42.95268, 42.95268, 44.49845,
44.49845, 44.49845), Longitude = c(-78.19259, -81.36935, -81.36935, -78.19259,
-78.19259, -78.19259), date = c("2014/02/12", "2014/01/24", "2014/01/08",
"2014/01/11", "2014/01/10", "2014/01/07"), timezone = c("EST5EDT", "EST5EDT",
"EST5EDT", "EST5EDT", "EST5EDT", "EST5EDT")), class = c("tbl_df", "tbl",
"data.frame"), row.names = c(NA, -6L))
sunRise <- function(Latitude, Longitude, date, timezone){
print(sunrise.set(Latitude, Longitude, date, timezone, num.days = 1)[1,1])
}
我走了这么远,这让我得到了想要的日出时间:
test %>%
pwalk(sunRise)
[1] "2014-02-12 07:17:09 EST"
[1] "2014-01-24 07:47:55 EST"
[1] "2014-01-08 07:56:13 EST"
[1] "2014-01-11 07:47:38 EST"
[1] "2014-01-10 07:47:59 EST"
[1] "2014-01-07 07:48:48 EST"
但我似乎无法弄清楚如何将我的函数结果附加到“测试”数据帧的末尾,比如另一个名为“sunrise_time”的变量......
test %>%
mutate(sunrisetime = pwalk(sunRise))
Error in mutate_impl(.data, dots) : Evaluation error: argument ".f" is missing, with no default.
侧边栏:如果您可以推荐一个适合您的好 purrr 教程,请将其包含在您的答案中!似乎有很多关于 purrr 的知识,我不确定作为初学者应该关注什么。