2017-01-04 18 views
12

के लिए एक्सई कैसे बनाएं I अपने उपयोगकर्ताओं को पर gist.github.com पर संग्रहीत चमकदार ऐप का उपयोग करना चाहूंगा। इस उद्देश्य मुझे लगता है कि पोर्टेबल क्रोम, पोर्टेबल आर और 2 फ़ाइलें हैं एक फ़ोल्डर बना लिया है के लिए: VBScript कि रन बुलाना चाहिए -आर कोड सही ढंग से

library(shiny);runGist("xxx") 

2:

1 - - run.R निम्नलिखित कोड शामिल हैं। आर तो runGist लागू किया जाएगा।

Randomize 
CreateObject("Wscript.Shell").Run "R-Portable\App\R-Portable\bin\R.exe CMD BATCH --vanilla --slave run.R" & " " & RND & " ", 0, False 

जब मैं क्लिक VBScript कुछ भी नहीं होता है तो मुझे लगता है कि मैं कुछ याद कर रहा हूँ, इस समस्या को हल कर सकते हैं?

अद्यतन: run.vbs क्लिक करने के बाद मैं एक गिने फ़ाइल मिल गया, जब मैं नोटपैड पर इसे खोला ++ मैं निम्न पाठ है:

Downloading https://gist.github.com/#############/download 
NULL 
[1] TRUE 

Listening on http://127.0.0.1:1337 

जब मैं ब्राउज़र को http://127.0.0.1:1337 की नकल की यह जो मैं चाहता देता है। तो सवाल यह है कि संदेश में दिए गए पते के साथ ब्राउज़र को कैसे बुलाया जाए? - मैंने देखा कि प्रत्येक क्लिक एक और पता देता है।

+0

कुछ हद तक संबंधित, https://github.com/wleepang/DesktopDeployR – r2evans

+0

देखना एक चमकदार सर्वर मिलता है ... यह प्रयास – Hao

उत्तर

5

आप डिफ़ॉल्ट ब्राउज़र विकल्प ओवरराइड कर सकते हैं, तो runGistlaunch.browser के साथ सिर्फ काम करेंगे।

run.R

#Assuming your portable Chrome's relative path is "Chrome\Application\chrome.exe" 
options(browser = normalizePath("Chrome\\Application\\chrome.exe")); 

library(shiny); 
runGist("xxx", launch.browser = TRUE); 

run.vbs

Set Fso = CreateObject("Scripting.FileSystemObject") 
Set WshShell = CreateObject("Wscript.Shell") 
    'specify CD to start commands from script's parent folder 
    WshShell.CurrentDirectory = Fso.GetParentFolderName(WScript.ScriptFullName) 

'Start the command as hidden and don't wait 
WshShell.Run "R-Portable\App\R-Portable\bin\R.exe CMD BATCH --vanilla --slave run.R NUL", 0, False 
+0

धन्यवाद @ कुल-टिगिन यह काम करता है !, मुझे सिर्फ क्रोम पोर्टेबल इंस्टॉलेशन के पथ को बदलने की आवश्यकता है। एक सवाल: मैं देखता हूं कि .vbs फ़ाइल पर क्लिक करने के बाद मुझे किसी प्रकार की अस्थायी फ़ाइल मिलती है: यानी radF068D.tmp आईएस इस तरह की फाइल के निर्माण को छोड़ने का एक तरीका है। मुझे लगता है कि उपयोग के एक वर्ष बाद फ़ोल्डर में सैकड़ों अस्थायी फ़ाइलें शामिल होंगी। – mql4beginner

+1

@ mql4beginner मदद करने में खुशी हुई। वह फ़ाइल मेरा विचार नहीं था, यह आपकी 'आरएनडी' नाम वाली फ़ाइल का विकल्प है। आप इसके बजाय 'NUL' का उपयोग करके आर के आउटपुट को दबा सकते हैं। उत्तर अपडेट किया गया। –

2

वीबीस्क्रिप्ट बिंदु से, जैसा कि आप उपयोग कर रहे हैं, सापेक्ष पथ हैं, यदि वर्तमान सक्रिय निर्देशिका (जहां सापेक्ष पथ की गणना की जाती है) ऐसा नहीं है जो आपको लगता है कि आपको समस्याएं हो सकती हैं।

आप (वर्बोज़ संस्करण)

Option Explicit 

    'Initialize PRNG 
    Randomize 

Dim fso 
    ' As we are dealing with files/folders, it is better to use adecuate functions 
    Set fso = WScript.CreateObject("Scripting.FileSystemObject") 

Dim baseFolder 
    ' Retrieve the folder where the current script is stored 
    baseFolder = fso.GetFile(WScript.ScriptFullName).ParentFolder.Path 

Dim RScript 
    ' Combine the current folder and file to execute 
    RScript = fso.BuildPath(baseFolder, "run.R") 

Dim R 
    ' Combine the current folder and path to the R executable 
    R = fso.BuildPath(baseFolder, "R-Portable\App\R-Portable\bin\R.exe") 

Dim command 
    ' compose the command to execute 
    command = q(R) & " CMD BATCH --vanilla --slave " & q(RScript) & " " & Rnd 

    ' Execute the composed command 
    Call WScript.CreateObject("WScript.Shell").Run(command, 0, False) 

' Just a helper function to quote the file/folder paths in the command  
Function q(text) 
    q = """" & text & """" 
End Function 
+0

धन्यवाद @MC एनडी, कृपया मेरा अपडेट देखें, शायद आप इस मुद्दे के साथ मदद कर सकते हैं। – mql4beginner

2

अपने अद्यतन के संबंध में की तरह कुछ के साथ की कोशिश कर सकते हैं: ध्यान दें, आप runApp() उदाहरण में एक तर्क के रूप पोर्ट संख्या निर्धारित कर सकते हैं कि: (runApp ... , बंदरगाह = 1337)

उदाहरण:

n <- 200 


# Define the UI 
ui <- bootstrapPage(
    numericInput('n', 'Number of obs', n), 
    plotOutput('plot') 
) 


# Define the server code 
server <- function(input, output) { 
    output$plot <- renderPlot({ 
    hist(runif(input$n)) 
    }) 
} 

# Return a Shiny app object 
runApp(shinyApp(ui = ui, server = server), port = 1337) 

संपादित करें: अनुवर्ती उत्तर:

अगर यह मदद नहीं करता है:

library(shiny);runGist(..., launch.browser = TRUE, port = 1337) 

इस प्रयास करें:

library(shiny);runGist(..., port = 1337);browseURL("http://127.0.0.1:1337") 
+0

धन्यवाद @ टोनियो लिब्रैंड, लेकिन समस्या यह है कि टेक्स्ट प्राप्त करने के बजाय पते में पोर्टेबल क्रोम को कैसे खोलें http://127.0.0.1:1337 एक फ़ाइल के अंदर http://127.0.0.1:1337 को सुनना रन से उत्पन्न होता है।vbs – mql4beginner

+1

@ mql4beginner: मेरा संपादन जांचें। और आपको अपने प्रश्नों को इस तरह से संपादित करना चाहिए कि उत्तर अभी भी आपके प्रश्न के अनुरूप हैं;) – BigDataScientist

+0

आपके प्रयासों के लिए धन्यवाद @ टोनियो लिब्रैंड, समाधान मेरे लिए काम नहीं करता है, लेकिन मुझे यकीन है कि कुछ और इसे उपयोगी पाएंगे। – mql4beginner

संबंधित मुद्दे