如何使用列作为上限进行集成

时间:2019-03-26 13:29:47

标签: r

我正在尝试在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

1 个答案:

答案 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