#r #r-markdown
Вопрос:
Вот образец моего набора данных (dinodat):
Age Mass 0.5 0.1072476 0.5 0.1072476 0.5 0.0972 0.5 0.0972 1 0.1414944 1 0.1414944 2 0.9437184 2 0.6666948 3 2.21085 3 1.8432 4 3.6 4 3.7090836 5 6.0665724 5 5.1944292 6 9.4610592 6 8.4694932 7 8.85735 7 8.85735 8 16.17165 8 15.8793984 9 18.3184128 9 24.3045684 10 29.2341636 11 29.6726688
Приведенный ниже код работает нормально, пока я не попытаюсь связать его:
```{r} lmod = nls(Mass ~ a b*Age, data = dinodat, start = list(a = 1, b = 0.25)) summary(lmod) plot(lmod) confint(lmod) ```
И это ошибка в строке 15, которая начинается с «lmod=…». :
Ошибка в xy.координатах(x,y,xlabel,ylabel,log): «x» представляет собой список, но не содержит вызовов компонентов » x » и «y»: … С видимым -gt; eval -gt;gt; eval -gt;gt;gt; график — gt; gt; gt; график.по умолчанию — gt; gt; gt; gt; gt; Выполнение xy.координат остановлено
Комментарии:
1. Основная проблема заключается в том, что
plot.nls
метода нет, аlmod
есть объект класса"nls"
. Вторичная проблема может заключаться в том, чтоdinodat
она недоступна в этом фрагменте кода: помните, что документы RMarkdown начинаются с чистого листа, и вам нужно прочитать/создать каждую переменную, которую вы используете.2. Хорошо, спасибо. Я не уверен, как исправить отсутствие метода plot.nls.
3. Что вы замышляли, когда этого не было в документе? Просто нарисуйте это.
4. «отсутствие метода plot.nls» означает, что
plot(lmod)
он не работает в чистом R за пределами knitr. Проблема в вашем R-коде.5. Извините, я не понимаю, что вы имеете в виду.
Ответ №1:
Это уценка для вас (вяжите в .pdf).
Я сделал сюжет с использованием библиотеки ggplot2. Вам определенно следует изучить этот пакет; у вас будет больше возможностей, и графики, сделанные с его помощью, будут выглядеть действительно круче.
Также я использовал гибкую библиотеку для вывода данных.фрейм в хорошей таблице (данные записываются случайным образом).
--- title: "Dinos are forever" output: pdf_document: default --- ## R Markdown ```{r setup, include = FALSE} library(ggplot2) library(flextable) Age lt;-c(0.5, 0.5, 0.5, 1, 1, 2, 2, 3, 6, 4, 3, 1, 10) Mass lt;-c(0.1072476, 0.1072476, 0.0972, 0.0972, 0.1414944, 1.8432, 3.7090836, 3.7090836, 9.4610592, 9.4610592, 8.4694932, 8.4694932, 24.3045684) dinodat lt;- data.frame(Age, Mass) lmod = nls(Mass ~ a b*Age, data = dinodat, start = list(a = 1, b = 0.25)) Dinos lt;- flextable(dinodat) Dinos_plot lt;- ggplot(dinodat, aes(x = Age, y = Mass)) geom_point() geom_smooth(method = "nls", method.args = list(formula = y ~ a b*x, start = list(a = 1, b = 0.25)), se = F, colour = "green3") ``` A dataset `r Dinos` newpage ```{r} summary(lmod) confint(lmod) ``` newpage A dinos_plot ```{r pressure, echo=FALSE} Dinos_plot ```
и сюжет: