2012-06-22 15 views
21

Tôi tự hỏi liệu tôi có thể sử dụng dấu hiệu knitr để tạo báo cáo nhanh chóng với các đối tượng xuất phát từ không gian làm việc hiện tại của tôi không. Khả năng tái tạo không phải là vấn đề ở đây. Tôi cũng đọc điều này rất tốt thread here.Có cách nào để đánh dấu hàng dệt kim thẳng ra khỏi vùng làm việc của bạn bằng RStudio không?

Nhưng tôi vẫn nhận được thông báo lỗi phàn nàn rằng không thể tìm thấy đối tượng cụ thể.

1) Giả sử tôi mở một tài liệu đánh dấu mới và lưu nó.

2) viết một đoạn đề cập đến một số đối tượng lm trong không gian làm việc của tôi. hãy gọi summary(mylmobject)

3) đan nó.

Thật không may là báo cáo được tạo nhưng không thể hiển thị đầu ra hồi quy vì không thể tìm thấy đối tượng. Lưu ý, nó hoạt động nói chung nếu tôi chỉ lưu đối tượng vào .Rdata và sau đó tải nó trực tiếp từ tệp đánh dấu.

Có cách nào để sử dụng các đối tượng trong đánh dấu R nằm trong không gian làm việc hiện tại không? Điều này sẽ thực sự tốt đẹp để hiển thị không R người một số đầu ra trong khi vẫn làm việc.

Trả lời

25

RStudio mở một phiên R mới để knit() tập R Markdown của bạn, vì vậy các đối tượng trong không gian làm việc hiện tại của bạn sẽ không có sẵn cho phiên đó (họ là hai phiên riêng biệt). Hai giải pháp:

  1. gửi feature request tới RStudio, yêu cầu họ hỗ trợ đan trong phiên R hiện tại thay vì bắt buộc một phiên mới;
  2. đan bằng tay của mình: library(knitr); knit('your_file.Rmd') (hoặc knit2html() nếu bạn muốn đầu ra HTML trong một bước, hoặc rmarkdown::render() nếu bạn đang sử dụng R Markdown v2)
+5

Tôi cảm thấy như tùy chọn 1 là chống lại mô hình nghiên cứu tái sản xuất. –

+2

@BrandonBertelsen bạn đúng, và đó chính xác là lý do tại sao RStudio mở một phiên R mới mỗi lần; bằng cách so sánh, Emacs/ESS gọi Sweave/knitr trong phiên R hiện tại. Có những lợi thế của việc sử dụng phiên R hiện tại, mặc dù: 1. có thể nhanh hơn; 2. giúp chúng tôi gỡ lỗi mã (ví dụ: kiểm tra các đối tượng được tạo từ tài liệu nguồn) –

+0

Bạn muốn biết liệu có bất kỳ thay đổi nào trong Rstudio hoặc Knitr vì điều này đã được đăng vào năm 2012 không? –

22

Có thể dễ dàng hơn để bạn lưu dữ liệu từ phiên khác của bạn sử dụng:

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

và sau đó tải nó vào tập tin MD của bạn:

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

thực sự đó là những gì tôi làm bây giờ. –

+2

Vấn đề là tôi có một phiên quá lớn nên phải mất một vài phút để tải.Tôi nhận được nơi Rstudio đến từ khả năng tái tạo, nhưng nếu chúng ta muốn sử dụng markdown để tạo một báo cáo có thể trình bày với dữ liệu lớn, chúng ta cần phải đan bằng tay. – Wayne

+0

Bạn có thể chọn những gì bạn lưu bằng cách sử dụng lưu (mylmobject) thay vì save.image() –

0

Các 0.123.được thiết kế chính xác để phân tích cú pháp tài liệu đánh dấu khi đang di chuyển.

Các vấn đề liên quan