我正在尝试在R中集成一个函数(y = a(1-d ^ -b),其中上限从一列(Lay1)中获取,然后将集成结果附加到数据框。尝试使用mapply函数执行此操作,但似乎无法使其工作于1列,也无法将其附加到数据框。
代码:
SiteA<-read.csv("TransSiteA.csv",header=TRUE)
output <- data.frame(SiteA)
FunSiteA <-function(d){a*(1-(d^-b))}
a <- -1.1441E-006
b <- 1.4346
KLay1 <- mapply(integrate, lower=SiteA$Lay1, upper=0.05, MoreArgs=list(f=FunSiteA))
KLay1
cbind(output, KLay1)
数据示例:
ID Date Lay1 Lay2 Lay3 Lay4
231.00 2011-04-10 9:30 0.020688 0.05 0.15 0.25
232.00 2011-04-10 9:45 0.019692 0.05 0.15 0.25
233.00 2011-04-10 10:00 0.019692 0.05 0.15 0.25
234.00 2011-04-10 10:15 0.021684 0.05 0.15 0.25
235.00 2011-04-10 10:30 0.019692 0.05 0.15 0.25
236.00 2011-04-10 10:45 0.019692 0.05 0.15 0.25
237.00 2011-04-10 11:00 0.019692 0.05 0.15 0.25
238.00 2011-04-10 11:15 0.019692 0.05 0.15 0.25
239.00 2011-04-10 11:30 0.021684 0.05 0.15 0.25
240.00 2011-04-10 11:45 0.02268 0.05 0.15 0.25
241.00 2011-04-10 12:00 0.023676 0.05 0.15 0.25
242.00 2011-04-10 12:15 0.016704 0.05 0.15 0.25
243.00 2011-04-10 12:30 0.0177 0.05 0.15 0.25
244.00 2011-04-10 12:45 0.018696 0.05 0.15 0.25
答案 0 :(得分:0)
喜欢吗?您的mapply
陈述对我来说很棒,只是做了一点改动。 SiteA
现在称为data
btw ..
mapply(integrate, lower= data$Lay1, upper=0.05, MoreArgs=list(f= FunSiteA), SIMPLIFY = FALSE) %>%
lapply(`[`, "value") %>%
unlist() %>%
cbind(data, "integrated" = .)
ID Date Lay1 Lay2 Lay3 Lay4 integrated
231.00 2011-04-10 9:30 0.020688 0.05 0.15 0.25 4.490543e-06
232.00 2011-04-10 9:45 0.019692 0.05 0.15 0.25 4.797246e-06
233.00 2011-04-10 10:00 0.019692 0.05 0.15 0.25 4.797246e-06
234.00 2011-04-10 10:15 0.021684 0.05 0.15 0.25 4.204397e-06
235.00 2011-04-10 10:30 0.019692 0.05 0.15 0.25 4.797246e-06
236.00 2011-04-10 10:45 0.019692 0.05 0.15 0.25 4.797246e-06
237.00 2011-04-10 11:00 0.019692 0.05 0.15 0.25 4.797246e-06
238.00 2011-04-10 11:15 0.019692 0.05 0.15 0.25 4.797246e-06
239.00 2011-04-10 11:30 0.021684 0.05 0.15 0.25 4.204397e-06
240.00 2011-04-10 11:45 0.022680 0.05 0.15 0.25 3.936582e-06
241.00 2011-04-10 12:00 0.023676 0.05 0.15 0.25 3.685198e-06
242.00 2011-04-10 12:15 0.016704 0.05 0.15 0.25 5.869608e-06
243.00 2011-04-10 12:30 0.017700 0.05 0.15 0.25 5.483335e-06
244.00 2011-04-10 12:45 0.018696 0.05 0.15 0.25 5.127134e-06