上一節的「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...