Я столкнулся с некоторыми проблемами, которые, когда я пытался развернуть свои блестящие приложения, получил это сообщение: Ошибка в значении [3L]: не удалось найти функцию setInternet2
r - Приложение не удалось запустить - не удалось найти функцию «setInternet2»
вызовы: местные ... tryCatch ......
Execution остановил
код здесь
### install packages
library(doParallel)
library(devtools)
library(lattice)
library(shiny)
library(stringr)
library(lubridate)
library(shinyBS)
library(doSNOW)
library(XML)
library(httr)
library(RCurl)
library(wordcloud)
library(tm)
library(rJava)
library(qdap)
library(slam)
runApp(list(
server = shinyServer(function(input, output, session){
observeEvent(input$getNews, {
output$News <- renderDataTable({
# Create a Progress object
progress <- shiny::Progress$new(session, min=1, max=15)
progress$set(message = "(╯ ̄▽ ̄)╯ Loading...", value = 0)
# Close the progress when this reactive exits (even if there's an error)
on.exit(progress$close())
data <- list()
tmp <- paste('.html', sep='')
url <- paste('https://www.ptt.cc/bbs/Stock/index', tmp, sep='')
html <- httr:::content(GET(url), encoding = "UTF-8") # xml2
html <- XML::xmlParse(html) # parse from xml2 to xml
url.list <- xpathSApply(html, "//div[@class='title']/a[@href]", xmlAttrs)
data <- rbind(data, paste('https://www.ptt.cc', url.list, sep=''))
data <- unlist(data)
# cl = makeCluster(rep('localhost', 8), 'SOCK')
# clusterSetupRNG(cl)
# clusterEvalQ(cl, source('R/R/GET.R'))
getDoc <- function(line){
start <- regexpr('www', line)[1]
end <- regexpr('html', line)[1]
if(start != -1 & end != -1){
url <- substr(line, start, end + 3)
name <- strsplit(url, '/')[[1]][4]
txtName <- gsub('html', 'txt', name)
if(!file.exists(paste0("document/news/", txtName))){
# html <- httr:::content(GET(url, config = set_cookies("over18"="1")), encoding="UTF-8")
html <- httr:::content(GET(url), encoding = "UTF-8")
html <- XML::xmlParse(html)
doc <- xpathSApply(html, "//div[@id='main-content']", xmlValue)
#write(doc, paste0("document/news/", gsub('html', 'txt', name)),
# encoding = "UTF-8")
writeLines(as.character(doc), paste0("document/news/", gsub('html', 'txt', name)),
useBytes=T)
}
}
}
# parSapply(cl, data, getDoc)
# stopCluster(cl)
sapply(data, getDoc)
cl <- makeCluster(4, type = "SOCK")
doSNOW:::registerDoSNOW(cl)
articles <-
foreach(i = 1:length(list.files("document/news/")), .combine = 'c') %dopar% {
readLines(paste0("document/news/", list.files("document/news/")[i]), encoding = "UTF-8")[1]
}
stopCluster(cl)
start = regexpr("新聞", articles)
end = regexpr("2016", articles)
news <- substr(articles, start = start - 1, stop = end + 3)[start != -1]
news
news2 <- substr(news, start = 1, stop = regexpr("時間", news) - 1)
# for messages
Sys.setenv(LANG = "Zh_TW")
Sys.setlocale("LC_ALL", "cht")
start = regexpr("時間", news)
end = regexpr("2016", news)
newsDate = substr(news, start = start + 6, stop = end + 3)
newsDate
Sys.setenv(LANG = "en")
Sys.setlocale("LC_ALL", "English")
newsDate = strptime(newsDate, format = "%b %d %H:%M:%S %Y")
newsDate = as.POSIXct(newsDate)
#newsDate = as.Date(newsDate, format = "%b %d %Y")
Sys.setenv(LANG = "Zh_TW")
Sys.setlocale("LC_ALL", "cht")
newsDF <- data.frame(Date = newsDate, Event = news2)
news <- newsDF
news <- news[order(news$Date, decreasing = TRUE), ]
news[as.Date(news$Date, format = "%b %d %Y") >= input$dateRange[1] &
as.Date(news$Date, format = "%b %d %Y") <= input$dateRange[2], ]
})
})
}),
ui = shinyUI(tagList(
tags$head(tags$script(HTML("Shiny.addCustomMessageHandler('closeWindow', function(m) {window.close();});"))),
navbarPage(
"MynavbarPage", inverse = TRUE, id = "navbar",
tabPanel("News",
sidebarLayout(
sidebarPanel(
width = 3,
bsTooltip("stocks", title = "Please enter stock code from yahoo finance.", placement = "bottom", trigger = "hover", options = NULL),
textInput("stocks", label = "Stock Code", value = "2330.TW"),
bsTooltip("dateRange", title = "This is a time period you apply WFA to.", placement = "bottom", trigger = "hover", options = NULL),
dateRangeInput("dateRange", label = "Choose Period", start = "2015-01-01", end = Sys.Date()),
actionButton("getNews", "Start", class="btn-primary btn-lg")
),
mainPanel(
bootstrapPage(
dataTableOutput("News"))
)
))
)))
))
Но я могу запустить свое приложение локально. Мне было интересно, не связано ли это с настройками моего локального пути? Мое приложение находится в папке, например, «MyAPP», где включены ui.R и server.R. У меня также есть другая папка с именем «document» внутри MyAPP. Я использовал много list.file («document /»).
я не включил setInternet2
функцию в моем приложении, но я использую веб-интерфейсы, такие как HTTR, XML, тм и т.д.
Любые предложения?
Большое спасибо.
Работал на моей машине. Вы можете ввести foo для поиска документов R для функции foo в студии R. Выполнение этого для setInternet2 говорит нам об этом из пакета utils. Попробуйте добавить библиотеку (utils), чтобы убедиться, что она загружена. – Marsenau
Как вы развертываете свое приложение? У меня такое чувство, что попытка запуска кластера сокетов на shinyapps.io или AWS, вероятно, не будет летать. – mlegge
Это функция, специфичная для Windows. Поэтому вам нужно быть более ясными о том, как вы попадаете в HOST, где он недоступен. –