R:从图形计算初始斜率

R:从图形计算初始斜率,r,R,我在R/swave中有一条由以下代码生成的曲线: \documentclass[a4paper,12pt]{article} \usepackage{Sweave} %%%%%% \SweaveOpts{eps=TRUE} \begin{document} <<echo=FALSE, results=hide>>= test.frame<-data.frame(ratio= c(0.0, 144.321, 159.407, 178.413, 202.5

我在
R/swave
中有一条由以下代码生成的曲线:

 \documentclass[a4paper,12pt]{article}
 \usepackage{Sweave}  %%%%%%
 \SweaveOpts{eps=TRUE}

 \begin{document}

<<echo=FALSE, results=hide>>=
test.frame<-data.frame(ratio= c(0.0, 144.321, 159.407, 178.413, 202.557), value= c(0, 0.84, 0.8925, 0.945, 0.9975))
@


<<echo=FALSE,results=hide,eval=TRUE>>=
postscript('doudou.eps',
           width=7, height=6,
           colormodel="cmyk",
           family = "ComputerModern",
           horizontal = FALSE,
           onefile=FALSE,
           paper = "special",
           encoding = "TeXtext.enc",
           pagecentre=FALSE)

with(test.frame,plot(ratio, value, ylab= "Hello",
                               xlab="Wonderful",
                               type="o",        
                               bty="o",         
                               lty="solid",     
                               lwd=3,            
                               pch=1,            
                               xaxp=c(0, 200, 4),  
                               xlim=c(0,200),
                               yaxt = "n",         
                               main=" My curve"))

axis(2,seq(0,1, by=0.5), las=2,cex=3,cex.lab=2,cex.axis=1.5,cex.main=2)

dev.off()
@

\begin{figure}[htbp]
\begin{center}
\includegraphics[width=0.8\textwidth]{doudou.eps}
\end{figure}


\end{document}
\documentclass[a4paper,12pt]{article}
\usepackage{Sweave}%%
\SweaveOpts{eps=TRUE}
\开始{document}
=

你的图表有五个点:一个在0,四个在144和203之间,所以我认为你不能对0附近的行为说太多

test.frame<-data.frame(ratio= c(0.0, 144.321, 159.407, 178.413, 202.557), 
                       value= c(0, 0.84, 0.8925, 0.945, 0.9975))
with(test.frame,plot(ratio, value, ylab= "Hello", xlab="Wonderful", type="o",
                     bty="o", lty="solid", lwd=3, pch=1, xaxp=c(0, 200, 4),  
                     xlim=c(0,200), yaxt = "n", main=" My curve") )
axis(2,seq(0,1, by=0.5), las=2,cex=3,cex.lab=2,cex.axis=1.5,cex.main=2)
或者你可以把一条线穿过所有限制通过原点的点

> with(test.frame, lm(value ~ ratio - 1 ) )
Coefficients:
   ratio  
0.005325  
或者你可以取你的平方根函数,我想(但不确定)你可能会这样做

> with(test.frame, lm(value ~ sqrt(ratio) - 1 ) )
Coefficients:
sqrt(ratio)  
    0.07037  

但在这种情况下,请注意,
y=0.07 sqrt(x)
的切线梯度在0处是无限的。

这个问题与swave无关。请把它简化为一个最小的独立的R样本。除了迪特的评论:你所说的“初始斜率”和“最大斜率”是什么意思?如果你只是想找到一个带有强制原点的线性拟合,请阅读
lm()
的帮助文件。我喜欢你花时间学习Swave,但请务必意识到Swave只是R和LaTeX的组合。如果您对R代码有疑问,最好只在问题中提供R代码。要从noweb文档(Rnw;snw)中获取这些,可以使用与运行swave完全相同的方式在其上运行Stangle。另见R中的Stangle
。@亨利回答了我的问题。非常感谢你们的评论。“我将在将来尝试分离R和Swave/LaTeX问题。”亨利。感谢您清晰的陈述和回答。从不同的角度学习总是好的。1投票赞成
> with(test.frame, lm(value ~ sqrt(ratio) - 1 ) )
Coefficients:
sqrt(ratio)  
    0.07037