Smarty使ってると$や{がキャンセルらしい。
拾ってきたコードを使うときには注意が必要だそう。
拾ってきたコードを使うときには注意が必要だそう。
http://curious-everything.com/204-entry.html
options(repos=c(RStudio='http://rstudio.org/_packages', getOption('repos')))
install.packages('shiny')
<html>
<head>
<script src="shared/jquery.js" type="text/javascript"></script>
<script src="shared/shiny.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="shared/shiny.css"/>
</head>
<body>
<h1>TEST</h1>
<p>
<label>Distribution type:</label><br />
<select name="dist">
<option value="norm">Normal</option>
<option value="unif">Uniform</option>
<option value="lnorm">Log-normal</option>
<option value="exp">Exponential</option>
</select>
</p>
<p>
<label>Number of observations:</label><br />
<input type="number" name="n" value="500" min="1" max="1000" />
</p>
<pre id="summary" class="shiny-text-output"></pre>
<div id="plot" class="shiny-plot-output"
style="width: 100%; height: 400px"></div>
<div id="table" class="shiny-html-output"></div>
</body>
</html>
続いて、server.Rを実装
library(shiny)
# Define server logic for random distribution application
shinyServer(function(input, output) {
# Reactive expression to generate the requested distribution. This is
# called whenever the inputs change. The output renderers defined
# below then all used the value computed from this expression
data <- reactive({
dist <- switch(input$dist,
norm = rnorm,
unif = runif,
lnorm = rlnorm,
exp = rexp,
rnorm)
dist(input$n)
})
# Generate a plot of the data. Also uses the inputs to build the
# plot label. Note that the dependencies on both the inputs and
# the data reactive expression are both tracked, and all expressions
# are called in the sequence implied by the dependency graph
output$plot <- renderPlot({
dist <- input$dist
n <- input$n
hist(data(),
main=paste('r', dist, '(', n, ')', sep=''))
})
# Generate a summary of the data
output$summary <- renderPrint({
summary(data())
})
# Generate an HTML table view of the data
output$table <- renderTable({
data.frame(x=data())
})
})
Rのコンソールから実行
runApp("dir")
ブラウザ上で表示することができた。
次回は試しに回帰分析が出来るものを作ってみる。
アプリの最小構成は以下のようになる
<application-dir>
|-- ui.R (ブラウザ側の処理) |-- server.R (サーバ側の処理)
<application-dir>
|-- www
|-- index.html
|-- server.R
項目 | disabled | read-only |
---|---|---|
サポートする要素 | BUTTON/INPUT/OPTGROUP/OPTION/SELECT/TEXTAREA | INPUT/TEXTAREA |
フォーカス | 受け取れない | 受け取れる ユーザーは変更できない |
タブ移動 | 含まれる | 含まれない |
満足なコントロール | ならない | なる |
レンダリング | ユーザエージェントに依存 | |
動的に変更する方法 | JavaScript |
ファイル名 | サイズ | 説明 |
---|---|---|
appicon.png | 57 x 57 | for non-retina iPhone/iPod touch (3/3G/3GS) |
appicon@2x.png | 114 x 114 | for retina iPhone/iPod touch |
appicon-72.png | 72 x 72 | for non-retina iPad |
appicon-72@2x.png | 144 x 144 | for retina iPad |
appicon-Small.png | 29 x 29 | for non-retina iPhone/iPod touch Spotlight and Settings (optional) |
appicon-Small@2x.png | 58 x 58 | for retina iPhone/iPod touch Spotlight and Settings (optional) |
appicon-Small-50.png | 50 x 50 | for non-retina iPad Spotlight and Settings (optional) |
appicon-Small-50@2x.png | 100 x 100 | for retina iPad Spotlight and Settings (optional) |
iTunesArtwork | 1024 x 1024 | for Ad Hoc, iTunes PNGで作成し、拡張子は付けない サイズは512×512でもいいけど1024×1024が推奨 |
ファイル名 | サイズ | 説明 |
---|---|---|
Default.png | 320 x 480 | for non-retina iPhone/iPod touch (3/3G/3GS) |
Default@2x.png | 640 x 960 | for retina iPhone/iPod touch |
Default-568h@2x.png | 640 x 1136 | for iPhone 5/iPod touch (4inch) |
Default-Portrait.png | 768 x 1004 | for non-retina iPad (portrait) ステータスバー(20px)を除いたサイズ |
Default-Portrait@2x.png | 1536 x 2008 | for retina iPad (portrait) ステータスバー(40px)を除いたサイズ |
Default-Landscape.png | 1024 x 748 | for non-retina iPad (landscape) ステータスバー(20px)を除いたサイズ |
Default-Landscape@2x.png | 2048 x 1496 | for retina iPad (landscape) ステータスバー(40px)を除いたサイズ |