2012-06-22 19 views
21

Zastanawiam się, czy mogę użyć markdown knitr do stworzenia raportu w locie z obiektami pochodzącymi z mojego obecnego obszaru roboczego. Powtarzalność nie jest tutaj problemem. Przeczytałem też to bardzo dobrze thread here.Czy istnieje sposób na obniżenie ceny za pomocą oprogramowania RStudio?

Ale wciąż dostaję komunikat o błędzie narzekający, że konkretnego obiektu nie można znaleźć.

1) Załóżmy, że otwieram nowy dokument do obniżenia i zapisuję go.

2) Napisz fragment, który odnosi się do jakiegoś obiektu lm w moim obszarze roboczym. zadzwoń: summary(mylmobject)

3) na drutach.

Niestety raport jest generowany, ale nie można wyświetlić wyniku regresji, ponieważ nie można znaleźć obiektu. Zauważ, że działa on ogólnie, jeśli po prostu zapiszę obiekt do .Rdata, a następnie załaduję go bezpośrednio z pliku oceny.

Czy istnieje sposób używania obiektów w oznaczeniu R, które znajdują się w bieżącym obszarze roboczym? To byłoby naprawdę miłe, aby pokazać ludziom, którzy nie pracują, coś, co jeszcze działa.

Odpowiedz

25

RStudio otwiera nowy R sesję knit() plik R Markdown, więc obiekty w bieżącej przestrzeni roboczej nie będą dostępne do tej sesji (są to dwie oddzielne sesje). Dwa rozwiązania:

  1. złożyć feature request do RStudio z prośbą o wsparcie dziewiarskich w bieżącej sesji R zamiast siłą rozpoczęcie nowej sesji;
  2. drutach ręcznie przez siebie: library(knitr); knit('your_file.Rmd') (lub knit2html() jeśli chcesz wyjście HTML w jednym etapie lub rmarkdown::render() jeśli używasz R Markdown v2)
+5

Czuję, że opcja 1 jest sprzeczna z paradygmatem powtarzalnych badań. –

+2

@BrandonBertelsen masz rację, i to jest właśnie powód, dla którego RStudio otwiera za każdym razem nową sesję R; dla porównania, Emacs/ESS wywołuje Sweave/knitr w bieżącej sesji R. Istnieją jednak zalety korzystania z istniejącej sesji R: 1. może być szybszy; 2. pomaga nam w debugowaniu kodu (np. Sprawdź obiekty wygenerowane z dokumentu źródłowego). –

+0

Chcesz wiedzieć, czy w Rstudio lub Knitrze pojawiły się jakieś zmiany, ponieważ zostały opublikowane w 2012 roku? –

22

Może łatwiej będzie Ci zaoszczędzić dane z drugiej sesji, używając:

save.image("C:/Users/Desktop/example_candelete.RData") 

a następnie załadować go do pliku MD:

load("C:/Users/Desktop/example_candelete.RData") 
+0

tak właśnie teraz robię. –

+2

Problem polega na tym, że sesja jest tak duża, że ​​ładowanie zajmuje kilka minut.Dostaję się tam, gdzie Rstudio pochodzi z odtwarzalności, ale jeśli chcemy użyć markdown do stworzenia prezentowalnego raportu z dużymi danymi, musimy zrobić na drutach ręcznie. – Wayne

+0

Możesz wybrać, co zapiszesz, używając save (mylmobject) zamiast save.image() –

Powiązane problemy