我在 R 中有一个代码 .. 我真的不知道它想做什么,但是执行时间太长,并且在我的计算机中几个小时后它没有执行。有人会为我解释以下代码并将其更改为更有效的代码吗?
Tempseq<-seq(0,30)
pCO2seq<-seq(0.04,10,by=0.05)
mas<- meshgrid(pCO2seq,Tempseq)
mapCO2<- mas[[1]]
maTemp<- mas[[2]]
resultdf<-CarboSolution(mapCO2[1],maTemp[2])
for(i in 2:length(mapCO2)){
resultdf<-bind_rows(resultdf,CarboSolution(mapCO2[i],maTemp[i]))
}
答案 0 :(得分:1)
我不知道函数 meshgrid
或 CarboSolution
的作用。我也不知道它们来自哪个包,但是在循环中增长对象的效率非常低。您可以在基础 R 中尝试 Map
:
resultdf <- do.call(rbind, Map(CarboSolution, mapCO2, maTemp))
或者purrr
的{{1}}:
map2_df
答案 1 :(得分:0)
我们可以使用 data.table
library(data.table)
rbindlist(Map(CarboSolution, mapCO2, maTemp))