我有一个简单的闪亮应用程序,可以跟踪用户按下某个操作按钮(actionButton())的次数,并将此总数与其他信息一起报告给用户.
现在我知道Shiny R为每个应用创建一个R会话,因此如果多个用户同时访问同一个应用,他们都在使用相同的R会话.因此,报告的用户X的动作按钮按下的数量最终是在当前R会话期间访问应用程序的所有用户的动作按钮按下的总和.
在某种意义上,我想让用户分开,在一个R会话中创建应用程序的虚拟实例.
我知道当函数shinyserver()与session参数一起运行时,会创建一个会话对象,并且有关客户端计算机的信息存储在其中session$clientdata.
是否有一些已知的方法来利用此对象的内容,以便设置和管理文件,以跟踪在任何给定时间访问应用程序的各种用户的状态?
在空的环境中开始新的R会话.使用一个参数编写一系列函数,该参数将用作times调用中参数的值rep().
f <- function(n) {
rep("hello", times = n)
}
f(x)
Run Code Online (Sandbox Code Playgroud)
人们期望这会失败,事实上会得到:
# Error in f(x) : object 'x' not found
Run Code Online (Sandbox Code Playgroud)
稍微修改一下这个功能:
f2 <- function(n) {
ls.str()
rep("hello", times = n)
}
f2(x)
Run Code Online (Sandbox Code Playgroud)
正如所料,它仍然失败:
# Error in f2(x) : object 'x' not found
Run Code Online (Sandbox Code Playgroud)
稍微修改一下(以查看控制台中的环境):
f3 <- function(n) {
print(ls.str())
rep("hello", times = n)
}
f3(x)
Run Code Online (Sandbox Code Playgroud)
我仍然期待失败,但反而得到:
## n : <missing>
## [1] "hello"
Run Code Online (Sandbox Code Playgroud)
这就好像将print()rep做的调用times设置为1一样.
我已经使用knitr了很长时间,通常是在R Studio环境中.最近我在我的Windows机器上安装了Python(版本3.4.1),把它放在路径中,并试用了Yi Hui Xie的Python示例文档.但是Python代码块不会运行.从像这样的块:
{r test-python, engine='python'}
x = 'hello, python world!'
print x
print x.split(' ')
Run Code Online (Sandbox Code Playgroud)
我收到如下错误消息:
Warning: running command '"python" -c "print '**Write** _something_ in `Markdown` from `Python`!'"' had status 1
running: "python" -c "x = 'hello, python world!'
print x
print x.split(' ')"
File "<string>", line 2
print x
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
我在Windows 7中运行R 3.1.0,使用RStudio版本0.98.847(beta预览版).Interactive Python从命令行打开就好了.
有任何想法吗?
最近我研究了一个程序员无意中传入undefinedaddEventListener的情况,因此:
window.addEventListener('load', undefined);
Run Code Online (Sandbox Code Playgroud)
没有抛出任何错误.这就像JavaScript愿意调用一样undefined.但世界上到底是 undefined()什么?我尝试过各种各样的事情,例如:
console.log(undefined() === null);
console.log(typeof undefined());
Run Code Online (Sandbox Code Playgroud)
但我从来没有得到任何回报.
为清晰起见添加了编辑:我的原始问题基于错误,因为我没有设置我的开发人员工具来将错误记录到控制台.上面的两个命令(但不是调用addEventListener)DO会在浏览器中抛出错误,如下面的答案和评论所示.
在我的 Mac 上,我尝试使用 unixodbc(来自 Homebrew 的 v.2.3.7)连接到数据库。
odbcinst -j显示:
DRIVERS............: /usr/local/etc/odbcinst.ini
SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini
FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources
USER DATA SOURCES..: /Users/homer/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
Run Code Online (Sandbox Code Playgroud)
~/.odbc.ini和的部分内容/usr/local/etc/odbc.ini:
[mysql-local]
description = local server
Driver = MySQLDriver
SERVER = localhost
USER = testuser
PASSWORD = testpass
DATABASE = testdb
Run Code Online (Sandbox Code Playgroud)
部分内容/usr/local/etc/odbcinst.ini
[MySQLDriver]
Driver = /usr/local/lib/libodbc.dylib
Setup = /usr/local/lib/libodbc.dylib
FileUsage = 1
Run Code Online (Sandbox Code Playgroud)
驱动程序/安装文件链接到一个链接到实际驱动程序的文件:/usr/local/Cellar/unixodbc/2.3.7/lib/libodbc.2.dylib。我已将此文件的权限设置为 755。
然后我尝试连接:
isql mysql-local testuser testpass -v
Run Code Online (Sandbox Code Playgroud)
结果是: …
r ×3
javascript ×1
knitr ×1
macos ×1
mysql ×1
python-3.x ×1
rep ×1
rstudio ×1
shiny ×1
unixodbc ×1