R shiny基礎 互動式入門

2021-09-29 03:43:58 字數 2410 閱讀 6949

上一節的「r shiny基礎」增加一些小控制項放在網頁中的控制項只能說是裝飾品,要想真正讓使用者通過選擇不同引數來得到不同結果,還需要這一節的知識

舉個例子:我們希望下面網頁在左邊選擇後,右邊會有對應的輸出

示意圖建立乙個互動式的輸出,只需要兩步

在使用者介面中增加輸出內容項(r object)server中告知shiny如何響應輸入生成輸出

先按照之前的教程,在網頁中新增可見元素

ui 

titlepanel("censusvis"),

sidebarlayout(

sidebarpanel(

helptext("create demographic maps with

information from the 2010 us census."),

selectinput("var",

label = "choose a variable to display",

choices = c("percent white",

"percent black",

"percent hispanic",

"percent asian"),

selected = "percent white"),

sliderinput("range",

label = "range of interest:",

min = 0, max = 100, value = c(0, 100))

),mainpanel(

)) )

結果如下:

示意圖shiny提供了一組函式,能夠在使用者介面中(ui)返回r物件。不同函式建立不同型別的輸出,如下所示:

輸出函式

作用datatableoutput

資料表htmloutput

原始html

imageoutput

plotoutput

作圖結果

tableoutput

**textoutput

文字uioutput

原始html

verbatimtextoutput

文字作為演示,我們選擇textoutput作為輸出項,修改文章的mainpanel部分

mainpanel(

textoutput(outputid = "selectvar")

)mainpanel(

)

所有的的output系列函式都需要有outputid引數,shiny根據這個引數確定輸出內容的位置。

先前編寫的ui只是確定了網頁中哪個部分用於展示輸出資訊,具體如何展現輸出則是需要一類render函式。shiny可用render類函式如下

渲染函式

輸出renderdatatable

datatable

renderimage

(本地的靜態檔案)

renderplot

作圖結果

renderprint

任何可列印的輸出

rendertable

資料框,矩陣或其他類**結構

rendertext

字串renderui

shiny tag 物件或html

這類函式需要放在server函式中,例如我們希望能能夠在mainpanel部分輸出使用者在sidebar選擇的內容,**如下:

server 

}

如**所示,render類函式的第乙個引數是r的表示式,**放在{}中。**可以是一行,也可以是多行,取決於輸出內容的複雜程度。

結果

: input後跟著input類函式中第乙個引數值,而output後跟著output類函式的第乙個引數值,如下所示:

輸入和輸出

這部分主要介紹

下一部分介紹如何編寫更加複雜的**,根據輸出得到更加複雜的輸出。

shiny基礎教程:

互動式介面

互動式介面 啟動終端後,在終端裝置附加乙個互動式應用程式 runlevel 顯示當前執行的模式 root vm 163 113 centos runlevel n 3init 3 切換至命令列 init 0 停機 千萬不能把initdefault 設定為0 init 1 單使用者模式 init 2 ...

互動式 非互動式,登入式 非登入式Shell

互動式shell和非互動式shell 互動式模式 在終端上執行,shell等待你的輸入,並且立即執行你提交的命令。這種模式被稱作互動式是因為shell與使用者進行互動。這種模式也是大多數使用者非常熟悉的 登入 執行一些命令 退出。當你退出後,shell也終止了。非互動式模式 以shell scrip...

互動式 vs 非互動式 登入式 vs 非登入式

方式 區別區分方法 互動式與使用者互動 echo 返回值有i 非互動式 與script互動 echo 返回值沒有i 方式 登入區別 退出區別 區分方法 登入式需要username pwd logout exit echo 0 返回是 bash 非登入式 無需要username pwd exit ec...