部分匹配(pmatch)不适用于shinyapps.io

部分匹配(pmatch)不适用于shinyapps.io,shiny,match,shinyapps,Shiny,Match,Shinyapps,我一直在开发一个web抓取应用程序,用于从JSTOR收集一些信息。该应用程序在本地运行良好,但在shinyapp.io上部署时不起作用 这个想法很简单,应用程序下载html页面(如下:)并阅读旁边的列表,在那里可以找到关于每个学科的点击次数的信息 webpage <- read_html(filePath) hits_html <- html_nodes(webpage, 'li') hits <- html_text(hits_html) 网页亚瑟!它似乎与预期结果中使用的

我一直在开发一个web抓取应用程序,用于从JSTOR收集一些信息。该应用程序在本地运行良好,但在shinyapp.io上部署时不起作用

这个想法很简单,应用程序下载html页面(如下:)并阅读旁边的列表,在那里可以找到关于每个学科的点击次数的信息

webpage <- read_html(filePath)
hits_html <- html_nodes(webpage, 'li')
hits <- html_text(hits_html)

网页亚瑟!它似乎与预期结果中使用的行分隔有关。此带“\r\n”的结果将仅与在Windows环境中运行它所获得的HTML匹配。如果您的服务器是基于Unix的服务器,它将不匹配,因为行分隔符为“\n”

尝试从预期结果中删除\r,然后重新运行应用程序

disciplines <- list("\r\n                African American Studies",
                    "\r\n                African Studies",
                    "\r\n                Agriculture",
                    "\r\n                American Studies",
                    "\r\n                Anthropology",
                    "etc...")

index <- pmatch(disciplines[[i]], hits)

string <- hits[index]
begin<-regexpr("\\(", string)
end<-regexpr("\\)", string)
        
k<-substring(string, begin+1, end-1)
k<-sub(",", "", k)
k<-as.numeric(k)
index <- pmatch(disciplines[[t]], as.list(hits)) # DOES NOT WORK ON SHINYAPPS.IO
index <- pmatch(disciplines[[t]], hits) # DOES NOT WORK ON SHINYAPPS.IO
index <- which(stringr::str_detect(hits, disciplines[[t]]))[[1]] # DOES NOT WORK ON SHINYAPPS.IO
index <- sjmisc::str_find(hits, disciplines[[t]])[[1]] # DOES NOT WORK ON SHINYAPPS.IO