ggplot2 не находит объект + проблемы с легендами - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь построить симуляцию дифференциального уравнения в сравнении с его точным аналитическим решением, но продолжаю получать сообщение «Ошибка в FUN (X [[i]], ...): значение объекта не найдено», дажехотя объявлена ​​только строка раньше!Кажется, я где-то допустил глупую ошибку, но не могу ее найти вообще.Кроме того, он не распознает указанные мной метки, что приводит к «неожиданной ошибке символа».Заранее спасибо,

require(ggplot2)
N<-500
T<-3
dt<-T/N
X <-c()
X[1] <-4

B<-numeric(N+1)
tt<-seq(0,T,length=N+1)

for(t in seq(2,N+1)){
  B[t] <- B[t-1]+rnorm(1)*sqrt(dt)
}

for(i in seq(2,N+1)){
  X[i] <- X[i-1]+2*B[i-1]*(B[i]-B[i-1])+dt
}



  S <- as.data.frame(rep(X[1],501) + B^2)
  names(S) <- (c('value','t','Solutions') labels=c("Simulation", "Exact Solution") )
  ggplot(data = S, aes(x = t, y = value, colour = variable)) + geom_line()

PE: Извините, если это дурацкий вопрос, я нуб, использующий R, но я вынужден использовать его для реальных вещей.

1 Ответ

0 голосов
/ 29 ноября 2018

В соответствии с комментариями @ joran, это должно сработать.Я не уверен, что правильно интерпретирую ваши намерения для строки S <- as.data.frame(rep(X[1],501) + B^2) в вашем коде, но, надеюсь, это укажет вам правильное направление для решения вашего вопроса.

set.seed(42)
# <- all your code before the bottom section

library(tidyverse)
S <- data.frame(t = tt, simulated = X, exact = B^2 + X[1]) %>%
  gather(variable, value, -t)
ggplot(data = S, aes(x = t, y = value, colour = variable)) + geom_line()

enter image description here

...