簡體   English   中英

R-繪圖功能中的下標循環(簡單的初學者qst)

[英]R - Loop over subscript in plot function (simple beginner's qst)

我的代碼如下所示:

plotf = function(title=expression("Test"~a )){
   plot(cars)
   title(title)
}

foo = c('a[1]', 'a[2]')

for(i in 1:2){
   plotf(title=expression("Test"~foo[i] ))
}

對於第一個情節,我想要一個下標1,對於第二個情節,我想要一個下標2,我如何實現? 多謝您的協助。

表達式未計算,因此表達式中的foo[i]保留為符號和調用,並且不會擴展為它們的值。 另外,如果需要下標,則需要使用表達式而不是字符串。 注意, "a[1]"a[1] 前者是一個字符值,而后者實際上是一個“調用”。

要動態構建表達式,可以使用bquote()substitute()動態插入零件。 這是使用前者的示例

foo = expression(a[1], a[2])

layout(matrix(1:2, nrow=1))
for(i in 1:2){
   plotf(title=bquote("Test"~.(foo[[i]]) ))
}

在此處輸入圖片說明

這里實際上並不需要foo變量。 您可以輕松地做到

for(i in 1:2){
   plotf(title=bquote("Test"~a[.(i)]) )
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM