小编Mar*_*ark的帖子

YAML中的RMarkdown错误

前几天我看了一场关于RMarkdown的RStudio精彩的网络研讨会.在网络研讨会之后,他们发布了在线演示中使用的代码,我想查看一个例子.我拿了他们的代码,把它放在我的RStudio(它说它完全是最新的,v0.98.978),安装或更新所有必要的软件包并点击"运行文档"

我收到一个我不理解的错误,Google对此毫无帮助.什么是这个神秘的<document start>,我该如何包含它?我假设在给定代码源的情况下将包括所有必要的组件.

Error in yaml::yaml.load(front_matter) : 
  Parser error: did not find expected <document start> at line 2, column 1
Calls: <Anonymous> -> parse_yaml_front_matter -> <Anonymous> -> .Call
Execution halted
Run Code Online (Sandbox Code Playgroud)

yaml rstudio r-markdown

21
推荐指数
2
解决办法
2万
查看次数

R小册子和闪亮如何清除地图点击数据

以下示例取自传单上的RStudio教程.我稍微修改了它以适合我的问题.

我有一张地图(这里是地震),我在地图上使用它addCircleMarkers,当点击时,弹出窗口会显示一些信息.我想在真正的应用程序中做的是,当在地图上单击标记时,它会将页面上的其他图形过滤为仅与该标记相关的数据.我知道如何获取用户点击使用位置的信息input$map_marker_click- 这将为我提供足够满足我需求的纬度和经度.但是 - 一旦设置,此值不会更改.NULL当用户在非标记区域中单击地图时,它不会还原.如何检测用户是否在标记以外的其他位置单击了地图并重置input$map_marker_clickNULL

下面的例子没有其他图表,但我确实显示了它的值 input$map_marker_click

library(shiny)
library(leaflet)
library(RColorBrewer)

ui <- bootstrapPage(
  tags$style(type = "text/css", "html, body {width:100%;height:100%}"),
  leafletOutput("map", width = "100%", height = "100%"),
  absolutePanel(top = 10, right = 10,
                sliderInput("range", "Magnitudes", min(quakes$mag), max(quakes$mag),
                            value = range(quakes$mag), step = 0.1
                ),
                selectInput("colors", "Color Scheme",
                            rownames(subset(brewer.pal.info, category %in% c("seq", "div")))
                ),
                checkboxInput("legend", "Show legend", TRUE),
                verbatimTextOutput("clickInfo")
  )
)

server <- function(input, output, session) {

  output$clickInfo = renderPrint({input$map_marker_click})

  filteredData …
Run Code Online (Sandbox Code Playgroud)

r leaflet shiny

7
推荐指数
1
解决办法
3400
查看次数

Shiny Server - 如何使用session $ onSessionEnded()

我正试图通过我的闪亮应用程序跟踪用户活动.我将函数放在特定位置,将行写入临时文件.我想要的是拥有一个在用户会话结束时调用的函数.

根据文件:

> ?session
> onSessionEnded(callback)  
      Registers a function to be called after the client has disconnected. Returns a function that can be called with no arguments to cancel the registration.
Run Code Online (Sandbox Code Playgroud)

我试着用这个:

session$onSessionEnded(function(x){
  a = read_csv(shinyActivityTmpFile_000)
  write_csv(a,'C:\\Users\\xxxx\\Desktop\\test.csv')
})
Run Code Online (Sandbox Code Playgroud)

但什么都没发生. shinyActivityTmpFile_000是一个全局文件引用.当用户点击按钮并执行操作时,应用程序将以CSV格式写入此文件.我只是想把它从临时存储移动到永久存储.最终我希望将函数写入数据库但是为了测试我只是想尝试一个在应用程序关闭时运行的函数.

我在这里错过了什么?

r shiny shiny-server

7
推荐指数
1
解决办法
4514
查看次数

如何防止闪亮服务器下拉菜单被切断

我开始了一个简单的闪亮应用程序:

shinyUI(
  navbarPage("Round Robin",
    tabPanel("Setup",
      fluidPage(
        column(4,
           selectInput("quarter",label="Select Quarter:",choices = yyyyQQ[order(yyyyQQ,decreasing=T)],selected=1)
          ,textInput("pwd", label = "Enter Password:",value="")
          )
        )
      )         
    )
  )
Run Code Online (Sandbox Code Playgroud)

目前,该server.R文件基本上是空的(我从 R Studio 内部启动了该项目,作为一个新的 Shiny 应用程序 - 这只是最初在那里创建的),并且我有一个global.R文件,可以加载library(shiny)、读取 csv 文件作为 data.frame 并创建变量yyyyQQ = unique(with(data,paste(Year,paste0("Q",Quarter),sep="-"))). 中有 37 个值yyyyQQ

当我启动应用程序时,下拉菜单仅显示 2.5 行,并为整个页面的一小行创建一个滚动条。

如何防止这种行为并允许生成整个下拉菜单?

更新:包括dputyyyyQQ是的,我知道变量名称并不反映变量的实际结构)另外 - 我已经在 Chrome 和 IE 中测试了这一点,在两个地方都有相同的行为。

c("09Q1", "09Q2", "09Q4", "09Q3", "10Q1", "10Q2", "10Q3", "10Q4", 
"11Q1", "11Q2", "11Q3", "12Q1", "11Q4", "12Q3", "12Q2", "12Q4", 
"13Q1", …
Run Code Online (Sandbox Code Playgroud)

r shiny

6
推荐指数
0
解决办法
393
查看次数

识别Shiny Server中的用户Web浏览器信息

在Shiny Server中,我可以通过获取有关客户端的一些信息session$clientData.在我目前正在使用的项目中

parseQueryString(session$clientData$url_search)
Run Code Online (Sandbox Code Playgroud)

获取URL中的参数.我希望能够获取网络浏览器信息(Google收集的用于分析的信息类型).虽然我可能想知道如何在ASP.NET或PHP可能的JS中做到这一点,但我并不清楚如何在我自己的JS中编织一个Shiny应用程序并将结果信息传递给变量.

如何获取随网页请求一起发送的浏览器信息?

r shiny shiny-server

6
推荐指数
1
解决办法
587
查看次数

Shiny Server 自定义 Handlebars.js 模板

我对 handlebars.js 一点也不熟悉,但我想自定义 Shiny Server 附带的目录索引模板。具体来说,我要做的是呈现不同应用程序的缩略图页面。

文件 /opt/shiny-server/templates/directorIndex.html 带有下面的代码,其中引用了许多表达式,包括 {{title}}、对应用程序、目录和文件的引用。

<!DOCTYPE html>
<html lang="en-US" xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>{{title}}</title>
  <link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,700,400italic,700italic' rel='stylesheet' type='text/css'>
  <link href='https://fonts.googleapis.com/css?family=Source+Code+Pro' rel='stylesheet' type='text/css'>
  <style type="text/css">
    body {
      font-family: Helvetica, Arial, sans-serif;
      background-color: #F5F5F5;
    }
    pre, tt, code, .code, #detail {
      font-family: 'Consolas', 'Courier New', 'Courier', monospace;
    }
    h1 {
      font-size: 40px;
    }
    a {
      text-decoration: none;
    }
  </style>
</head>
<body>

<h1>{{title}}</h1>

<ul>
  {{#each apps}}
    <li><a class="code" href="{{this.url}}">{{this.name}}</a> (application)</li>
  {{/each}}
  {{#each dirs}}
    <li><a class="code" href="{{this.url}}/">{{this.name}}</a></li>
  {{/each}}
  {{#each files}}
    <li><a …
Run Code Online (Sandbox Code Playgroud)

handlebars.js shiny-server

5
推荐指数
1
解决办法
427
查看次数

如何使用Python从AWS Lambda检索格式正确的JSON

我在AWS Lambda中具有一个函数,该函数连接到Twitter API并返回与通过事件提供的特定搜索查询匹配的推文。下面是该功能的简化版本。我使用了一些辅助功能get_secret来管理API密钥,process_tweet这些功能限制了返回的数据以及进行将创建的日期转换为字符串的操作。最终结果是我应该重新获得字典列表。

def lambda_handler(event, context):
    twitter_secret = get_secret("twitter")

    auth = tweepy.OAuthHandler(twitter_secret['api-key'],
                               twitter_secret['api-secret'])
    auth.set_access_token(twitter_secret['access-key'],
                          twitter_secret['access-secret'])
    api = tweepy.API(auth)

    cursor = tweepy.Cursor(api.search,
                           q=event['search'],
                           include_entities=True,
                           tweet_mode='extended',
                           lang='en')

    tweets = list(cursor.items())
    tweets = [process_tweet(t) for t in tweets if not t.retweeted]

    return json.dumps({"tweets": tweets})
Run Code Online (Sandbox Code Playgroud)

然后,在我的桌面上,我有调用lambda函数的代码。

aws_lambda = boto3.client('lambda', region_name="us-east-1")
payload = {"search": "paint%20protection%20film filter:safe"}
lambda_response = aws_lambda.invoke(FunctionName="twitter-searcher",
                                    InvocationType="RequestResponse",
                                    Payload=json.dumps(payload))
results = lambda_response['Payload'].read()
tweets = results.decode('utf-8')
Run Code Online (Sandbox Code Playgroud)

问题在于,在json.dumps以lambda格式显示输出与在Python中读取有效负载之间的某个位置,数据变得很麻烦。例如,换行符应该\n变为\\\\n,所有双引号都存储为,\\"而Unicode字符均以前缀\\。因此,当我的桌面上的Python接收到转义字符时,所有被转义的字符都会被转义。考虑返回的列表的此元素(使用手动格式设置)。

'{\\"userid\\": 190764134,
  \\"username\\": …
Run Code Online (Sandbox Code Playgroud)

python json aws-lambda

5
推荐指数
1
解决办法
3049
查看次数

Python - 在 Dash 回调中重用函数

我正在尝试在 Python Dash 框架中创建一个应用程序,它允许用户从列表中选择一个名称并使用该名称填充其他两个输入字段。有六个地方用户可以从(相同的)列表中选择一个名字,因此总共需要执行 12 个回调。我的问题是,如何使用单个函数定义来提供多个回调?

正如我在其他地方看到的(例如这里),人们在执行多个回调时重用相同的函数名称,例如

@app.callback(
    Output('rp-mon1-health', 'value'),
    [Input('rp-mon1-name', 'value')]
)
def update_health(monster):
    if monster != '':
        relevant = [m for m in monster_data if m['name'] == monster]
        return relevant[0]['health']
    else:
        return 11

@app.callback(
    Output('rp-mon3-health', 'value'),
    [Input('rp-mon3-name', 'value')]
)
def update_health(monster):
    if monster != '':
        relevant = [m for m in monster_data if m['name'] == monster]
        return relevant[0]['health']
    else:
        return 11

@app.callback(
    Output('rp-mon1-health', 'value'),
    [Input('rp-mon1-name', 'value')]
)
def update_health(monster):
    if monster != '':
        relevant = [m …
Run Code Online (Sandbox Code Playgroud)

python plotly-dash

5
推荐指数
2
解决办法
1508
查看次数

R - 使用 rvest 将 html_node 限制为 html_nodes 结果的元素

我正在使用rvest网页抓取 - 为了试用,我正在抓取来自 IMDB 的电影的评论分数。对于此示例,我尝试从该站点获取所有评论和相关用户名。请注意,并非所有评论都有星级评分 - 我想要的只是有星级评分的评论。

我的起始代码:

library(rvest)
library(magrittr)

id = "0000001"
reviews = paste0("http://www.imdb.com/title/tt",id,"/reviews-index?start=0;count=10000000") %>% 
  html() %>%
  html_nodes(xpath='//td[contains(@class, "comment-summary")]') 
Run Code Online (Sandbox Code Playgroud)

这将完全按照我的预期返回 11 条评论的列表(这部电影有 11 条评论)。

当我然后尝试浏览此列表以检查是否存在星级时,我得到了意想不到的结果。

reviews %>%
  .[[1]] %>%
  html_node(xpath='//img[contains(@width,"102")]')
Run Code Online (Sandbox Code Playgroud)

这产生

<img width="102" height="12" alt="10/10" src="http://i.media-imdb.com/images/showtimes/100.gif"/>
Run Code Online (Sandbox Code Playgroud)

但第一条评论实际上只包含:

<td class="comment-summary">
<a href="/user/ur0093335/"><img class="avatar" src="http://ia.media-imdb.com/images/M/MV5BMjI2NDEyMjYyMF5BMl5BanBnXkFtZTcwMzM3MDk0OQ@@._SX40_SY40_SS40_.jpg" height="width="/></a>
<h2><a href="reviews?count=10000000&amp;start=0">one-shot record of a belly dancer</a></h2>

<b>Author:</b>
     <a href="/user/ur0093335/">Brian Fuller (bfuller@montreat.edu)</a>
      <small>on 12 August 1998</small>
</td> 
Run Code Online (Sandbox Code Playgroud)

img我的代码返回并没有在子集存在。 我怎样才能真正地对 html 进行子集化以html_node()按照直觉应该的方式进行后续操作?

r rvest

4
推荐指数
1
解决办法
4295
查看次数

Rcpp-将sregex_token_iterator的结果捕获到矢量

我是R用户,正在学习c ++以在Rcpp中发挥作用。最近,我strsplit使用Rcpp 编写了R的替代方法,string.h但它不是基于正则表达式的(afaik)。我一直在阅读有关Boost的内容,并找到了sregex_token_iterator。

以下网站有一个示例:

std::string input("This is his face");
sregex re = sregex::compile(" "); // find white space

// iterate over all non-white space in the input. Note the -1 below:
sregex_token_iterator begin( input.begin(), input.end(), re, -1 ), end;

// write all the words to std::cout
std::ostream_iterator< std::string > out_iter( std::cout, "\n" );
std::copy( begin, end, out_iter );
Run Code Online (Sandbox Code Playgroud)

我的rcpp函数运行正常:

#include <Rcpp.h>
#include <boost/xpressive/xpressive.hpp>
using namespace Rcpp;

// [[Rcpp::export]]
StringVector testMe(std::string input,std::string uregex) {
  boost::xpressive::sregex …
Run Code Online (Sandbox Code Playgroud)

c++ boost r rcpp

3
推荐指数
1
解决办法
752
查看次数