所以这是游戏计划。我试图在下面使用这个数据集(将是一个结构对象),通过它运行一个曲线回归模型。然后,我想在每个点取斜率(即每个 x 的一阶导数值),并将具有该斜率信息的数据表保存在它自己的列中。
输入.txt:
yval xval
0.198 0.125
0.18 0.0625
0.126 0.03125
0.078 0.015625
0.066 0.007813
0.03 0.0039065
0.00 0.0
脚本.r:
dat <- read.table("input.txt", header=T, sep="\t")
library(drc)
library(ggplot2)
mm <- structure(list(x = dat$xval, y = dat$yval), .Names= c("x","y"), class = "data.frame")
model.drm <- drm (y ~ x, data = mm, fct = MM.2())
mml <- data.frame(x = seq(0, max(mm$x), length.out = 100)) #I actually don't know what length does, and am unsure about this line
mml$y <- predict(model.drm, newdata = mml)
ggplot(mm, aes(x = x, y = y)) +
theme_bw() +
xlab("x lab") +
ylab("y lab") +
ggtitle("dose response curve") +
geom_point(alpha = 0.5) +
geom_line(data = mml, aes(x = x, y = y), colour = "blue")
ggsave("mm.pdf", width = 6, height = 4)
#Need to pass in vector (list) of x, into the derivative of mml's function.
#Output will be a list of corresponding slope values for each of those x's.
#append said slope values to the data frame and save it.
dev.off()
摘要:获取数据,运行回归,获取每个值的斜率,然后将具有斜率的相同数据保存在单独的列中。输出将是同一张表,但有一个新的第三列:与每个 x 值相关的斜率。输出必须如下所示:
输出.txt:
yval xval slopes
0.198 0.125 slope1
0.18 0.0625 slope2
0.126 0.03125 slope3
0.078 0.01562 slope4
0.066 0.00781 slope5
0.03 0.00396 slope6
0.00 0.00 slope7
问题是,如何“获取”该信息以及如何重新保存它是我不知道如何正确执行的事情。我不熟悉 R 如何为方程进行微积分。我可以从 summary() 中得到方程的常数,但我无法处理它。
我无法找到正确的信息组合(或者可能只是我正在使用的搜索词?)。如果其中一些看起来像是不正确的伪代码,我深表歉意,至少可以说,R 一直在学习……令人沮丧。帮助?
R 版本 3.2.4 Redhat Linux 4.1.2 数据借鉴自https://plot.ly/~gwaligroski/15/michaelis-menten-equation 代码改编自https://rpubs.com/RomanL/6752