在 r 中沿曲线找到不同的 y 值

finding different y values along curve in r

所以我绘制了一条曲线,并查看了我的书和堆栈,但似乎找不到任何代码来指示 R 告诉我沿着 70 x 的曲线时的 y 值。

curve(
20*1.05^x, 
from=0, to=140, 
xlab='Time passed since 1890', 
ylab='Population of Salmon', 
main='Growth of Salmon since 1890'
)

所以简而言之,我想知道如何命令 R 给我 70 年和其他时间的鲑鱼数量。

编辑: 为了澄清,我很好奇如何命令 R 以增加 5 的方式显示 X 的多个 Y 值。

曲线正在绘制函数 20*1.05^x 所以只需在该函数中插入您想要的任何值而不是 x,例如

> 20*1.05^70
[1] 608.5285
>
20*1.05^(seq(from=0, to=70, by=10))

这是我必须做的所有事情,直到 Ed 发表他的回复说我可以直接在 R 中键入一个函数,我才忘记了。

salmon <- data.frame(curve(
  20*1.05^x, 
  from=0, to=140, 
  xlab='Time passed since 1890', 
  ylab='Population of Salmon', 
  main='Growth of Salmon since 1890'
))
salmon$y[salmon$x==70]

1 608.5285

这个salmondata.frame给你所有的数据。

head(salmon)
    x        y
1 0.0 20.00000
2 1.4 21.41386
3 2.8 22.92768
4 4.2 24.54851
5 5.6 26.28392
6 7.0 28.14201

如果您还可以使用不等式来使用上面的语法检查给定范围内的鲑鱼数量。

使用此对象回答问题的第二部分也很简单:

salmon$z <- salmon$y*5 # I am using * instead of + to make the plot more clear

plot(x=salmon$x,y=salmon$z, xlab='Time passed since 1890', ylab='Population of Salmon',type="l")
lines(salmon$x,salmon$y, col="blue")