2013-02-25 14 views
22

Tôi đang cố gắn nhãn ô có nhãn sau:Sử dụng biểu thức có biến r

"Một số khảo nghiệm EC50 (uM)" trong đó "u" là biểu tượng vi mô.

Tôi hiện có:

assay <- "Some Assay" 
plot(0,xlab=expression(paste(assay," AC50 (",mu,"M)",sep=""))) 

Nhưng điều đó mang lại cho: "khảo nghiệm EC50 (um)" chứ không phải là mong muốn "Một số Assay EC50 (um)".

Đề xuất? Cảm ơn.

Tôi cũng đã cố gắng:

paste(assay,expression(paste(" AC50 (",mu,"M)",sep="")),sep="") 
+2

Ý của bạn là viết 'assay' và sau đó là' assay1'? –

+0

Có, xin lỗi. Tôi sửa nó rồi. Sao chép từ mã của tôi một chút nhanh chóng. – dayne

Trả lời

30

Bạn muốn có một sự kết hợp của bquote() và một chút plotmath fu:

assay <- "Some Assay" 
xlab <- bquote(.(assay) ~ AC50 ~ (mu*M)) 
plot(0, xlab = xlab) 

Các ~ là một nhà điều hành khoảng cách và * phương tiện cạnh nhau các nội dung sang trái và bên phải của nhà điều hành. Trong bquote(), mọi thứ được gói trong .() sẽ được tra cứu và thay thế bằng giá trị của đối tượng được đặt tên; do đó .(assay) sẽ được thay thế bằng biểu thức với Some Assay.

+0

Hoạt động hoàn hảo, cảm ơn! – dayne

+0

Wow! Cảm ơn bạn! – Anthony

2

Bạn cũng có thể thử cách tiếp cận của người nghèo:

assay <- "Some Assay" 
plot(0, xlab = paste0(assay, " AC50 (µM)")) 

Nó chỉ rõ nhân vật mu trực tiếp hơn là sử dụng biểu thức (và paste0 chỉ paste với sep = "" là).

2

một lựa chọn sử dụng mtext và bquote

plot(0,xlab='') 
Lines <- list(bquote(paste(assay," AC50 (",mu,"M)",sep=""))) 
mtext(do.call(expression, Lines),side=1,line=3) 

Lưu ý rằng tôi đặt xlab null trong cốt truyện đầu tiên.

EDIT Không cần gọi biểu thức, vì bquote sẽ tạo biểu thức thay thế các phần tử được bao bọc bằng.() Theo giá trị của chúng. Vì vậy, một goodanswer là:

plot(0,xlab='') 
Lines <- bquote(paste(.(assay)," AC50 (",mu,"M)",sep="")) 
mtext(Lines,side=1,line=3) 
+1

Điều đó đánh bại điểm của 'bquote()' để tạo thành một biểu thức với sự thay thế của các phần tử được bọc trong '.()' Theo giá trị của chúng. –

+0

@GavinSimpson Cảm ơn tôi đã nhận được quan điểm của bạn. Bây giờ nó có đẹp hơn không? – agstudy