我收到错误消息“ stat_function()
中的计算失败:
当我尝试绘制此函数时,为二进制运算符的非数字参数。当我删除两个exp时,我反而收到错误“在stat_function()
中计算失败:找不到函数“ y2 <-”'我在做什么错了?
我尝试了在线显示的ggplot函数的不同配置,但是收到“映射必须在aes()或aes_()中”,因为我是R的新手,我不知道要尝试多少其他东西。
Library(tidyverse)
calculate_blood_amount <- function(t, parms){
c_0 <- parms[1]
k_a <- parms[2]
k_c <- parms[3]
y2(t) <- ((k_a * c_0)/(k_c - k_a)) * exp^(-k_a * t) + ((-k_a * c_0)/(k_c -
k_a)) * exp^(-k_c * t)
return(y2(t))
}
Time1 = data.frame(t = c(0, 24))
parms1 = c(500, 0.168, 1.436)
ggplot(data = Time1, aes(x = t)) +
stat_function(fun = calculate_blood_amount,
args = list(parms = parms1)) +
theme_bw()
当t为0和24时,这应该提供y2(t)的图
答案 0 :(得分:0)
我认为您的代码中只有几个语法错误。参见下面的工作版本。
exp ^(xyz)更改为exp(xyz),y2(t)变量名称更改为y2_t。
library(tidyverse)
calculate_blood_amount <- function(t, parms){
c_0 <- parms[1]
k_a <- parms[2]
k_c <- parms[3]
y2_t <- ((k_a * c_0)/(k_c - k_a)) * exp(-k_a * t) + ((-k_a * c_0)/(k_c - k_a)) * exp(-k_c * t)
return(y2_t)
}
Time1 = data.frame(t = c(0, 24))
parms1 = c(500, 0.168, 1.436)
ggplot(data = Time1, aes(x = t)) +
stat_function(fun = calculate_blood_amount,
args = list(parms = parms1)) +
theme_bw()