Błąd w YAML z R Markdown


3

Mam następujący skrypt R Markdown o nazwie test.Rmd:

---
params: 
  results: 
  value: !r mtcars
---

```{r setup, echo=FALSE, include=FALSE}
df <- params$results
knitr::kable(df)
```

Gdy uruchomię następujące polecenia w OpenCPU:

library(rmarkdown)
library(knitr)
rmarkdown::render("test.Rmd", output_format = "html_document")

Błąd w yaml :: yaml.load (yaml, handlers = knit_params_handlers (ocena = ocena),: nieużywany argument (eval.expr = TRUE)

Zainstalowałem różne wersje YAML i to nie rozwiązało problemu.


Czy możesz sprecyzować pytanie, ponieważ obecnie trudno jest ustalić, gdzie może się to nie udać. Kilka wskazówek: 1) Użyj zestawu danych, który inni mogą odtworzyć, takiego jak mtcarszestaw danych. 2) Czy należy zdefiniować funkcję „EKSPORT”, czy można po prostu uruchomić renderfunkcje normalnie? 3) Zmień ścieżkę pliku, aby usunąć system.fileścieżkę i po prostu utwórz ścieżkę względną. Wprowadzając te zmiany, możesz nawet sam odkryć problem.
Michael Harper

Zobacz moje zmiany. W moim rozumieniu powinno to nadal pokazywać błąd, który widzisz. Jeśli nie jest to poprawne, cofnij zmiany.
Michael Harper,

Tak to rzucić ten sam błąd, nawet bez parametru: params = list(results = mtcars). Jeśli piszę w skrypcie params: results: !r mtcarsrmarkdown::render("mtcarsexample.Rmd", output_format = "html_document")
Markdown

Okej, zredagowałem twoje pytanie. Użyj tego jako przykładu, jak zmniejszyć liczbę pytań w przyszłości :) Czy jesteś pewien, że wszystkie twoje pakiety są aktualne? install.packages("rmarkdown")itd.
Michael Harper,

Tak, dziękuję !!! W końcu to rozwiązałem. Moja instalacja pakietu yaml-2.1.14 była uszkodzona. Musiałem go usunąć ręcznie i zainstalowałem wersję 2.1.19. Od najnowszej wersji 2.2.0. też dały mi problemy
DanMed

Odpowiedzi:


1
  1. Zainstaluj pakiet devtools z CRAN.
  2. W R uruchom następujące polecenie:

    biblioteka (devtools)

    install_github ('viking / r-yaml')


Witamy w Stackoverflow. Twoja odpowiedź będzie najbardziej przydatna, jeśli wyjaśnisz ją pełniej.
Simon.SA,

Podjęto próbę install_github('viking/r-yaml'), która nie tylko nie powiodła się, ale teraz najwyraźniej została uszkodzona przez instalację RStudio, więc przy starcie dostaję Error in .Call(C_unserialize_from_yaml, string, as.named.list, handlers, : Incorrect number of arguments (8), expecting 4 for 'unserialize_from_yaml'wiele razy. Wydaje mi się również, że nie mogę ponownie zainstalować oryginału yaml. Dalsze wyjaśnienie odpowiedzi byłoby dobre.
jhchou

1

Zajęło mi to również trochę czasu. Wydaje się, że nowa knitrpotrzebuje wersji yaml2.2.0 i nowszej.

Ta pomoc od @ScientificProgrammer na github tutaj https://github.com/viking/r-yaml/issues/56#issuecomment-441394840 pomogła mi. Rozwiązaniem było zainstalowanie nowego pakietu przy użyciu devtools ze standardowego R, a nie RStudio . Dostałem kilka komunikatów o błędach kompilatora, ale wydawało się, że działa. Więc nie zniechęcaj się.

Więc w standardzie R, zakładając, że masz devtoolspakiet

library(devtools)
devtools::install_github("viking/r-yaml")

Kopiuję ich pełną odpowiedź poniżej, aby pomóc ludziom w przypadku zerwania linku:

Gdyby to pomogło, miałem ten sam problem co IndrajeetPatil, kiedy próbowałem uruchomić devtools :: install_github („viking / r-yaml”) z poziomu RStudio. Jeśli uruchomiłem install.packages („viking / r-yaml”) z poziomu RStudio, problem został rozwiązany.

Kiedy jednak opuściłem RStudio i uruchomiłem devtools :: install_github („viking / r-yaml”) w standardowym kliencie R, nadal otrzymałem te same ostrzeżenia kompilatora, ale problem również zniknął.

PS Innym popularnym rozwiązaniem, które pomogło niektórym osobom było yamlcałkowite usunięcie katalogu, np. Za pomocą Eksploratora Windows. Uruchom ponownie RStudio Ctrl + Shift + F10, a następnie ponownie zainstaluj pakiet yaml. Nie działało to dla mnie, ponieważ wciąż dawało mi tylko wersję 2.1.18.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.