Код работает, но выдает ошибку при вязании в г - PullRequest
0 голосов
/ 13 июня 2018

Этот код работает нормально, когда мы запускаем код чанков в уценке.

```{r , echo = FALSE, results='asis', comment=NA, warning=FALSE, message=FALSE}
options("getSymbols.warning4.0"=FALSE)
options("getSymbols.yahoo.warning"=FALSE)
library(plyr)
library(knitr)
library(ggplot2)
library(quantmod)
library(lubridate)
library(scales)
comp.name <- readline(prompt = "Enter the company name: ")
tyu2 <- getSymbols(comp.name , src = "yahoo", verbose = TRUE, from = "2018-03-01", auto.assign = FALSE)
tyu2 <- as.data.frame(tyu2)
tyu <- tyu2[,6]
x <- row.names(tyu2)
final <- length(tyu)
final <- as.numeric(final)
p <- ggplot(data = tyu2 , aes(x= x ,y=tyu))+geom_bar(stat = "identity", fill = "blue")+ theme(axis.text.x = element_text(angle = 90))
p
```

Но при попытке вязать с уценкой выдает ошибку

Error in `[.data.frame`(tyu2, , 6) : undefined columns selected
Calls: <Anonymous> ... withCallingHandlers -> withVisible -> eval -> eval -> [ -> [.data.frame

Что означает эта ошибка.Как решить.Пожалуйста помоги.Нашел ответы онлайн, которые устанавливают все пакеты.Все установлено.

1 Ответ

0 голосов
/ 13 июня 2018

В вашем коде есть строка для ввода пользователя.Однако knitr перейдет на следующую строку, если пользователь ничего не вводил.Это означает, что comp.name будет "", а getSymbols() извлекает пустые данные, а это означает, что все столбцы технически не определены.

Я бы предложил следующее изменение:

```{r , echo = FALSE, results='asis', comment=NA, warning=FALSE, message=FALSE}
options("getSymbols.warning4.0"=FALSE)
options("getSymbols.yahoo.warning"=FALSE)
library(plyr)
library(knitr)
library(ggplot2)
library(quantmod)
library(lubridate)
library(scales)
comp.name <- readline(prompt = "Enter the company name: ")
# For case user inpt is empty
if (comp.name == "") {
  comp.name <- "AAPL"
}
tyu2 <- getSymbols(comp.name , src = "yahoo", verbose = TRUE, from = "2018-03-01", auto.assign = FALSE)
tyu2 <- as.data.frame(tyu2)
tyu <- tyu2[,6]
x <- row.names(tyu2)
final <- length(tyu)
final <- as.numeric(final)
p <- ggplot(data = tyu2 , aes(x= x ,y=tyu))+geom_bar(stat = "identity", fill = "blue")+ theme(axis.text.x = element_text(angle = 90))
p
```

Я смогвязать это просто отлично.

...