我想从数据框中的两列计算积分 积分基于一个函数; 1 / x,我知道我需要写一个循环。你能帮忙写一个循环和集成函数吗?
这是样本数据框;
upper_concentration<-c(1:200, 1)
lower_concentration<-upper_concentration*0.9
df = data.frame(upper_concentration,lower_concentration)
for (i in 1:(length(df))){
integral <- function (x) {1/df$upper_concentration}
result <- integrate(integral, lower = df$upper_concentration, upper =upper_concentration*0.9)
}
答案 0 :(得分:0)
内置integrate
功能将执行整个范围的积分。
lower <- 1
upper <- 200
integral <- function (x) {1/x}
result <- integrate(integral, lower, upper)
否如果您想要数据帧的每个部分的积分,则需要循环。
result<-vector(list, length=nrow(df)) #initialize an empty vector
integral <- function (x) {1/x}
for (i in 1:(nrow(df))){
result[[i]] <- integrate(integral, df$lower_concentration[i], df$upper_concentration[i])
}