2013-09-23 67 views
5

tôi cần nó trông như thế này:Tôi làm cách nào để bao gồm một siêu văn bản vào các văn bản trên một ô trên R?

R^2 = một số giá trị

Và tôi đã thử đoạn code dưới đây nhưng nó sẽ không hoạt động, nó được đưa ra là "R (biểu thức (^ 2)) = một số giá trị" thay vì:

text (25, 200, paste ("R (expression (^2)) =", round (rsquarelm2, 2))) 
+1

Tôi đã tìm thấy thông tin này h tìm kiếm trên Google. Có thể bạn có thể sửa đổi nó: 'văn bản (-pi/2, 0, biểu thức (mũ (alpha) == (X^t * X)^{- 1} * X^t * y))' –

Trả lời

6

bạn không muốn một vector nhân vật, nhưng một biểu thức, vì thế này

expression(R^2 == 0.85) 

là những gì bạn cần. Trong trường hợp này, bạn muốn thay thế trong kết quả của một phép toán R khác. Đối với điều đó bạn muốn substitute() hoặc bquote(). Tôi thấy sau này dễ dàng hơn để làm việc với:

rsquarelm2 <- 0.855463 
plot(1:10, 1:10, type = "n") 
text(5, 5, bquote(R^2 == .(round(rsquarelm2, 2)))) 

Với bquote(), bất cứ điều gì trong .() được đánh giá và kết quả được bao gồm trong biểu thức trả về.

3

Hàm paste trả về một chuỗi chứ không phải biểu thức. Tôi thích sử dụng bquote đối với trường hợp như thế này:

text(25, 200, bquote(R^2 == .(rs), list(rs=round(rsquarelm2,2)))) 
0

Làm thế nào để bao gồm định dạng và giá trị toán học trong lô là FAQ 7.13.

Ví dụ, nếu ahat là mức ước lượng tham số của bạn a quan tâm, sử dụng

title(substitute(hat(a) == ahat, list(ahat = ahat)))

(lưu ý rằng nó là ‘==’ và không ‘=’). Đôi khi, bquote() cung cấp thêm biểu mẫu nhỏ gọn, ví dụ: title(bquote(hat(a) = .(ahat)))

nơi các biểu thức con được đính kèm trong ‘.()’ được thay thế bằng giá trị của chúng.

demo(plotmath) cũng hữu ích.


Trong trường hợp này, bạn có thể sử dụng một trong hai

title(substitute(R^2 = rsq, list(rsq = format(rsquarelm2, digits = 2)))) 

hoặc

title(bquote(R^2 == .(format(rsquarelm2, digits = 2)))) 

(format là thích hợp hơn ở đây hơn round, kể từ khi bạn muốn kiểm soát như thế nào giá trị được hiển thị thay vì so với việc tạo chính xác giá trị của chính nó.)