поиск различных значений y вдоль кривой в r

#r #statistics #population

#r #Статистика #население

Вопрос:

Итак, я построил кривую и просмотрел как в своей книге, так и в стеке, но, похоже, не могу найти никакого кода, чтобы указать R сообщить мне значение y, когда вдоль кривой на 70 x .

 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, чтобы показать несколько значений Y для X при увеличении на 5.

Комментарии:

1. да, но мне было интересно, есть ли способ дать команду R для вывода значений. скажем, каждые 5 лет. Вместо того, чтобы использовать мой калькулятор (который я знаю, как это сделать), я просто пытался выяснить, обладает ли R способностью, которую я бы предположил, что она есть.

2. Вы не командуете R. Спросите это красиво.

Ответ №1:

 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

Этот salmon data.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
  

Если вы также можете использовать неравенства для проверки количества лосося в заданных диапазонах, используя приведенный выше синтаксис.

Также просто ответить на 2-ю часть вашего вопроса, используя этот объект:

 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")
  

введите описание изображения здесь

Ответ №2:

кривая отображает функцию 20 * 1.05 ^ x, поэтому просто вставьте любое значение, которое вы хотите, в эту функцию вместо x, например

 > 20*1.05^70
[1] 608.5285
>
  

Комментарии:

1. На самом деле это не обобщающий ответ, хотя и пропускает 2-ю часть вопроса.

Ответ №3:

 20*1.05^(seq(from=0, to=70, by=10))
  

Это все, что мне нужно было сделать, я забыл, пока Эд не опубликовал свой ответ, что я могу ввести функцию непосредственно в R.