R Language
चमकदार
खोज…
एक ऐप बनाएं
शाइनी RStudio द्वारा विकसित एक R पैकेज है जो R में विश्लेषण के परिणामों को अंतःक्रियात्मक रूप से प्रदर्शित करने के लिए वेब पेज बनाने की अनुमति देता है।
एक चमकदार ऐप बनाने के दो सरल तरीके हैं:
- एक
.R
फ़ाइल में, या - दो फ़ाइलों में:
ui.R
औरserver.R
।
एक चमकदार एप्लिकेशन को दो भागों में विभाजित किया गया है:
- यूआई : एक उपयोगकर्ता इंटरफ़ेस स्क्रिप्ट, लेआउट और एप्लिकेशन की उपस्थिति को नियंत्रित करता है।
- सर्वर : एक सर्वर स्क्रिप्ट जिसमें एप्लिकेशन को प्रतिक्रिया करने की अनुमति देने के लिए कोड होता है।
एक फाइल
library(shiny)
# Create the UI
ui <- shinyUI(fluidPage(
# Application title
titlePanel("Hello World!")
))
# Create the server function
server <- shinyServer(function(input, output){})
# Run the app
shinyApp(ui = ui, server = server)
दो फाइलें
ui.R
फ़ाइल बनाएँ
library(shiny)
# Define UI for application
shinyUI(fluidPage(
# Application title
titlePanel("Hello World!")
))
server.R
बनाएँ server.R
फ़ाइल
library(shiny)
# Define server logic
shinyServer(function(input, output){})
रेडियो बटन
आप किसी सूची से आइटम का चयन करने के लिए उपयोग किए गए रेडियो बटन का एक सेट बना सकते हैं।
सेटिंग्स बदलना संभव है:
- चयनित: प्रारंभ में चयनित मान (बिना चयन के लिए वर्ण)
- इनलाइन: क्षैतिज या ऊर्ध्वाधर
- चौड़ाई
HTML जोड़ना भी संभव है।
library(shiny)
ui <- fluidPage(
radioButtons("radio",
label = HTML('<FONT color="red"><FONT size="5pt">Welcome</FONT></FONT><br> <b>Your favorite color is red ?</b>'),
choices = list("TRUE" = 1, "FALSE" = 2),
selected = 1,
inline = T,
width = "100%"),
fluidRow(column(3, textOutput("value"))))
server <- function(input, output){
output$value <- renderPrint({
if(input$radio == 1){return('Great !')}
else{return("Sorry !")}})}
shinyApp(ui = ui, server = server)
चेकबॉक्स समूह
स्वतंत्र रूप से कई विकल्पों को टॉगल करने के लिए उपयोग किए जाने वाले चेकबॉक्स का एक समूह बनाएं। सर्वर चयनित मानों के चरित्र वेक्टर के रूप में इनपुट प्राप्त करेगा।
library(shiny)
ui <- fluidPage(
checkboxGroupInput("checkGroup1", label = h3("This is a Checkbox group"),
choices = list("1" = 1, "2" = 2, "3" = 3),
selected = 1),
fluidRow(column(3, verbatimTextOutput("text_choice")))
)
server <- function(input, output){
output$text_choice <- renderPrint({
return(paste0("You have chosen the choice ",input$checkGroup1))})
}
shinyApp(ui = ui, server = server)
सेटिंग्स बदलना संभव है:
- लेबल: शीर्षक
- विकल्प: चयनित मान
- चयनित: प्रारंभ में चयनित मान (बिना चयन के लिए NULL)
- इनलाइन: क्षैतिज या ऊर्ध्वाधर
- चौड़ाई
HTML जोड़ना भी संभव है।
बॉक्स का चयन करें
मानों की सूची से एक या एक से अधिक आइटम चुनने के लिए उपयोग की जा सकने वाली चयन सूची बनाएं।
library(shiny)
ui <- fluidPage(
selectInput("id_selectInput",
label = HTML('<B><FONT size="3">What is your favorite color ?</FONT></B>'),
multiple = TRUE,
choices = list("red" = "red", "green" = "green", "blue" = "blue", "yellow" = "yellow"),
selected = NULL),
br(), br(),
fluidRow(column(3, textOutput("text_choice"))))
server <- function(input, output){
output$text_choice <- renderPrint({
return(input$id_selectInput)})
}
shinyApp(ui = ui, server = server)
सेटिंग्स बदलना संभव है:
- लेबल: शीर्षक
- विकल्प: चयनित मान
- चयनित: प्रारंभ में चयनित मान (बिना चयन के लिए NULL)
- एकाधिक: सही या गलत
- चौड़ाई
- आकार
- चयन करें: TRUE या FALSE (उपयोग या चयन के लिए नहीं। js, प्रदर्शन बदलें)
HTML जोड़ना भी संभव है।
एक चमकदार ऐप लॉन्च करें
आप ऐप कैसे बनाते हैं, इसके आधार पर आप कई तरीकों से एप्लिकेशन लॉन्च कर सकते हैं। यदि आपका ऐप दो फ़ाइलों ui.R
और server.R
में विभाजित है या यदि आपका सभी ऐप एक फ़ाइल में है।
1. दो फाइल ऐप
आपकी दो फाइलें ui.R
और server.R
को एक ही फोल्डर में होना है। आप तब shinyApp()
फ़ंक्शन को कंसोल में shinyApp()
और शाइनी ऐप वाली डायरेक्टरी के रास्ते को पार करके अपना ऐप लॉन्च कर सकते थे।
shinyApp("path_to_the_folder_containing_the_files")
जब आप ui.R
या server.R
फ़ाइल को खोलते हैं, तो आप Rstudio पर आने वाले रन ऐप बटन को दबाकर सीधे Rstudio से ऐप लॉन्च कर सकते हैं।
या आप बस कंसोल पर runApp()
लिख सकते हैं यदि आपकी वर्किंग डायरेक्टरी शाइनी ऐप डायरेक्टरी है।
2. एक फ़ाइल ऐप
यदि आप अपनी एक R
फ़ाइल बनाते हैं, तो आप इसे shinyApp()
फ़ंक्शन के साथ भी लॉन्च कर सकते हैं।
- आपके कोड के अंदर:
library(shiny)
ui <- fluidPage() #Create the ui
server <- function(input, output){} #create the server
shinyApp(ui = ui, server = server) #run the App
- कंसोल में पथ को जोड़कर
.R
फ़ाइल कोappFile
अनुप्रयोग के साथ चमकदार अनुप्रयोग से युक्त करें:
shinyApp(appFile="path_to_my_R_file_containig_the_app")
नियंत्रण विगेट्स
समारोह | विजेट |
---|---|
actionButton | क्रिया बटन |
checkboxGroupInput | चेक बॉक्स का एक समूह |
checkboxInput | एक एकल चेक बॉक्स |
dateInput | तिथि चयन में सहायता के लिए एक कैलेंडर |
dateRangeInput | एक तिथि सीमा का चयन करने के लिए कैलेंडर की एक जोड़ी |
fileInput | एक फ़ाइल अपलोड नियंत्रण विज़ार्ड |
मदद पाठ | पाठ की मदद करें जिसे इनपुट फॉर्म में जोड़ा जा सकता है |
numericInput | संख्या दर्ज करने के लिए एक फ़ील्ड |
रेडियो के बटन | रेडियो बटन का एक सेट |
selectInput | से चुनने के लिए विकल्पों के साथ एक बॉक्स |
sliderInput | एक स्लाइडर बार |
जमा करने वाला बटन | एक सबमिट बटन |
पाठ इनपुट | पाठ दर्ज करने के लिए एक फ़ील्ड |
library(shiny)
# Create the UI
ui <- shinyUI(fluidPage(
titlePanel("Basic widgets"),
fluidRow(
column(3,
h3("Buttons"),
actionButton("action", label = "Action"),
br(),
br(),
submitButton("Submit")),
column(3,
h3("Single checkbox"),
checkboxInput("checkbox", label = "Choice A", value = TRUE)),
column(3,
checkboxGroupInput("checkGroup",
label = h3("Checkbox group"),
choices = list("Choice 1" = 1,
"Choice 2" = 2, "Choice 3" = 3),
selected = 1)),
column(3,
dateInput("date",
label = h3("Date input"),
value = "2014-01-01"))
),
fluidRow(
column(3,
dateRangeInput("dates", label = h3("Date range"))),
column(3,
fileInput("file", label = h3("File input"))),
column(3,
h3("Help text"),
helpText("Note: help text isn't a true widget,",
"but it provides an easy way to add text to",
"accompany other widgets.")),
column(3,
numericInput("num",
label = h3("Numeric input"),
value = 1))
),
fluidRow(
column(3,
radioButtons("radio", label = h3("Radio buttons"),
choices = list("Choice 1" = 1, "Choice 2" = 2,
"Choice 3" = 3),selected = 1)),
column(3,
selectInput("select", label = h3("Select box"),
choices = list("Choice 1" = 1, "Choice 2" = 2,
"Choice 3" = 3), selected = 1)),
column(3,
sliderInput("slider1", label = h3("Sliders"),
min = 0, max = 100, value = 50),
sliderInput("slider2", "",
min = 0, max = 100, value = c(25, 75))
),
column(3,
textInput("text", label = h3("Text input"),
value = "Enter text..."))
)
))
# Create the server function
server <- shinyServer(function(input, output){})
# Run the app
shinyApp(ui = ui, server = server)
डिबगिंग
debug()
और debugonce()
अधिकांश चमकदार डिबगिंग के संदर्भ में अच्छा काम नहीं करेगा। हालाँकि, महत्वपूर्ण स्थानों में सम्मिलित किए गए browser()
स्टेटमेंट आपको बहुत जानकारी दे सकते हैं कि आपका चमकदार कोड कैसे काम कर रहा है (नहीं)। यह भी देखें: browser()
का उपयोग कर डिबगिंग browser()
शोकेस मोड
शोकेस मोड आपके ऐप को कोड के साथ प्रदर्शित करता है जो इसे उत्पन्न करता है और सर्वर में कोड की लाइनों को हाइलाइट करता है। क्योंकि यह उन्हें चलाता है।
शोकेस मोड को सक्षम करने के दो तरीके हैं:
- तर्क डिस्प्ले के साथ चमकदार ऐप लॉन्च करें।
runApp("MyApp", display.mode = "showcase")
= "शोकेस", जैसे,runApp("MyApp", display.mode = "showcase")
। - अपने चमकदार ऐप फ़ोल्डर में
DESCRIPTION
नामक फाइल बनाएं और इस लाइन को इसमें जोड़ें:DisplayMode: Showcase
।
प्रतिक्रियाशील लॉग विज़ुअलाइज़र
रिएक्टिव लॉग विज़ुअलाइज़र आपके आवेदन में प्रतिक्रियाशील निर्भरता और निष्पादन को दर्शाने के लिए एक इंटरैक्टिव ब्राउज़र-आधारित टूल प्रदान करता है। प्रतिक्रियाशील लॉग विज़ुअलाइज़र को सक्षम करने के लिए, आर कंसोल में options(shiny.reactlog=TRUE)
निष्पादित options(shiny.reactlog=TRUE)
और अपने सर्वर में कोड की उस पंक्ति को जोड़ें। फ़ाइल। रिएक्टिव लॉग विज़ुअलाइज़र शुरू करने के लिए, जब आपका ऐप चल रहा हो, तो विंडोज पर Ctrl + F3 और मैक पर कमांड + F3 दबाएं। प्रतिक्रियाशील लॉग विज़ुअलाइज़र में नेविगेट करने के लिए बाएँ और दाएँ तीर कुंजियों का उपयोग करें।