我在R中创建了我的第一个Shiny应用程序.我使用闪亮来显示我进行的调查的双变量结果.从一对输入框中,用户可以从调查中选择变量,并生成各种统计数据(表格,图表等),以便他们探索调查数据的某些属性.
我想要包含实际PDF调查的链接.现在我已经编写了代码,以便PDF调查可以链接到,通过单击文本"点击此处下载调查",该调查显示为helpText嵌入在... wellPanel内pageWithSidebar.我使用了以下命令(在ui.R文件中):
wellPanel(
helpText( a("Click Here to Download Survey", href="http://www.dfcm.utoronto.ca/Assets/DFCM2+Digital+Assets/Family+and+Community+Medicine/DFCM+Digital+Assets/Faculty+$!26+Staff/DFCM+Faculty+Work+$!26+Leadership+Survey+Poster.pdf")
)
)
Run Code Online (Sandbox Code Playgroud)
有没有办法在新标签(IE,Firefox等)中自动打开此文件?目前,该功能是在与闪亮应用相同的选项卡中打开链接.因此,您必须使用向前和向后按钮从应用程序转到调查并再次返回.
现在,我右键单击链接并选择"在新标签页中打开".有没有办法将此功能嵌入到后端代码中,因此它成为默认值.
免责声明:我没有真正的html或java经验.我是R的狂热用户.如果有可能的解决方案,请您尝试解释我在ui.R或server.R文件中分别嵌入代码更改的位置.
我想估计一个响应的协变量效应,其值取[0,1]中的值.也就是说,响应变量的值存在于0-1(包括)之间.我想使用Papke和Wooldridge(1996)描述的分数logit模型,见下文:
http://faculty.smu.edu/millimet/classes/eco6375/papers/papke%20wooldridge%201996.pdf
是否有R函数(或库)来促进分数logit模型的估计?我能glm()以某种方式修改吗?
我很欣赏@Jibler的评论 - 这可以从分数logit模型得到估计的beta值.但是,正如@Ben指出的那样,鉴于此规范,将无法正确估计SE.
我认为这是一个更受欢迎的经济学模型,因此STATA期刊撰稿人对此进行了充分讨论: http://fmwww.bc.edu/EC-C/S2013/823/EC823.S2013.nn06.slides.pdf http:/ /www.stata.com/meeting/germany10/germany10_buis.pdf
我能够从Papke和Wooldridge 401k计划示例中获得数据(见下文).在我看来,至少在分数logit模型中的稳健性是通过方差的三明治估计 - Papke和Wooldridge的方程(9)得到的.也就是说,等式(10)继续展示如何通过将估计的vcov矩阵与标准glm(...,family=binomial(link=logit))拟合预先乘以Pearson残差的估计来获得稳健性.
Buis的幻灯片似乎sandwich()使用参数vce(robust)实现了小数logit估计器的一种形式.这些与sandwich()R 中的函数的应用完全一致,与标准二项式GLM一致.我假设,但我不确定,因为我不是STATA,这与Baum的论点一样简单robust吗?如果有人拥有STATA并且可以检查这将有所帮助.family=quasibinomialGLM给出的模型给出了略微不同的SE估计值.但它似乎也是分数logit模型的均值/方差参数的合理估计.
下面是一些R代码,它复制了上面Buis文章中给出的数据拟合(它还显示了准二项式模型如何给出略微不同的SE估计):
##
## Replicate what some STATA Journal editors call "fractional logit"
## get data from: "http://fmwww.bc.edu/repec/bocode/k/k401.dta"
##
library(sandwich)
library(foreign)
X <- read.dta("F:/ProportionsDepVar/k401.dta")
class(X)
names(X)
dim(X)
X$totemp1 <- X$totemp/10000
glmfit <- glm(prate ~ mrate + totemp1 + age + sole, family=binomial(link=logit), data=X)
summary(glmfit)
##
## And the SE's …Run Code Online (Sandbox Code Playgroud) 如何从R中的列表列表中删除null元素,如下所示:
lll <- list(list(NULL),list(1),list("a"))
Run Code Online (Sandbox Code Playgroud)
我想要的对象看起来像:
lll <- list(list(1),list("a"))
Run Code Online (Sandbox Code Playgroud)
我在这里看到了类似的答案:如何从列表中删除元素?但无法将其从简单列表扩展到列表列表.
编辑
我上面的错误例子.这两个答案都适用于更简单的案例(上图).如果列表如下:
lll <- list(list(NULL),list(1,2,3),list("a","b","c"))
Run Code Online (Sandbox Code Playgroud)
如何获得:
lll <- list(list(1,2,3),list("a","b","c"))
Run Code Online (Sandbox Code Playgroud) 我一直在努力解决这个简单的问题,所以我想我会寻求帮助.我正在尝试将国家医学图书馆ftp站点的期刊文章列表读入Python 3.3.2(在Windows 7上).期刊文章位于.csv文件中.
我试过以下代码:
import csv
import urllib.request
url = "ftp://ftp.ncbi.nlm.nih.gov/pub/pmc/file_list.csv"
ftpstream = urllib.request.urlopen(url)
csvfile = csv.reader(ftpstream)
data = [row for row in csvfile]
Run Code Online (Sandbox Code Playgroud)
它会导致以下错误:
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
data = [row for row in csvfile]
File "<pyshell#4>", line 1, in <listcomp>
data = [row for row in csvfile]
_csv.Error: iterator should return strings, not bytes (did you open the file in text mode?)
Run Code Online (Sandbox Code Playgroud)
我认为我应该使用字符串而不是字节?任何有关简单问题的帮助,以及对出现问题的解释都将非常感激.
我正在尝试通过网络托管应用程序R,shiny并且shiny-server.作为前言,我只使用Linux操作系统(任何风格)一天或两天,没有网络经验.所以请耐心等待.如果我忽略了非常简单的事情,我会提前道歉.
我按照下面链接中给出的示例来安装Ubuntu 12.04,R(精确),闪亮和闪亮的服务器.
所有命令执行正常,没有任何抱怨.Ubuntu似乎安装得很好.R运行正常.所有R库都安装.我可以在本地使用runApp并runGist指向适当的文件位置来托管闪亮的应用程序
作为测试,我将闪亮的示例复制到shiny-server/www文件夹:
sudo cp -R /usr/local/lib/R/site-library/shiny/examples /var/shiny-server/www/
如果我在终端中打开R,并运行以下代码.事情很好.
runApp("/var/shiny-server/www/examples/01_hello/")
这次应用程序运行http://localhost:4251/.我注意到一个奇怪的事情是,如果我退出R并在新会话中运行相同的代码,应用程序将运行在不同的"端口"(即不是4251).也许这是Ubuntu中的常见行为??? 但是来自Windows,我已经习惯了应用程序始终在运行http://localhost:8100/.
现在当我尝试:
sudo start shiny-server.并尝试通过Web打开相同的示例(即不在R本地打开).我注意到的一件事是该过程总是从不同的"端口"开始.这次是shiny-server start/running, process 4463.但这个过程数与每一个变化sudo start shiny-server和sudo stop shiny-server序列.并不3838像我对上面引用的示例文档所期望的那样.这是正常的吗?
在服务器启动的情况下,如果我尝试(用我的IP地址替换主机名)输入以下URL(在Firefox中),我得到:
http://<hostname>:3838/examples/ 导致"页面未找到错误".http://<hostname>:4463/examples/ 导致"无法连接到服务器错误"上面给出的提示是否提供了足够的信息来确定我在设置闪亮服务器时做错了什么?
我是否需要在上面的帖子中列出的Ubuntu 12.04,R,闪亮,闪亮服务器,node.js,upstart脚本等之外安装其他软件/库?
我在一台独立的台式机上运行上述所有内容,它本身就是一个更大的部门网络(在大学).我的部门是网络防火墙,还是我的个人防火墙阻止了我的访问?如果在Ubuntu中是这种情况,我将如何禁用/调整设置?
我真的是一个新手,并且不知道为什么它不起作用,并且会感谢小组提供的任何帮助.在此先感谢,以下是我使用的R,闪亮和闪亮服务器的版本:
> sessionInfo()
R version 3.0.2 (2013-09-25)
Platform: x86_64-pc-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 …Run Code Online (Sandbox Code Playgroud) 我有调查数据.我想用Shiny与合作者分享我的单变量和双变量分析的结果.在调查中有数字和因子变量.根据观看Shiny应用程序的人是否对单变量/双变量摘要感兴趣,并且根据他们想要汇总的变量类型,我希望出现不同的输出.
特别,
i)如果是单变量和数字,则显示:
length() - sum(is.na()) hist() summary()ii)如果单变量和因子则显示:
barplot()table()prop.table()iii)如果是双变量和数字*数字,则显示:
plot(x,y)summary(x)summary(y)cor(x,y,method="spearman")iv)如果显示双变量和因子*因子,则显示:
table(x,y)prop.table(x,y)chisq.test(x,y)v)如果是双变量和(因子*数字或数字*因子),则显示:
by(numeric, factor, summary)kruskal.test(numeric ~ factor)目前,我有代码为所有5个步骤生成所需的输出作为单独的应用程序.我想把它们组合成一个闪亮的应用程序.我在概念上苦苦思索如何mainPanel()根据用户在sidebarPanel()UI 上做出的选择来设置显示器以响应它将接收的不同输出.
特别,
mainPanel()UI标头以反映不同的输出verbatimTextOutput()但我不知道如何继续处理我希望显示的多个部分/类型的输出,如(i-iv中所述) )上面.例如文字,表格,图表. 下面是我的ui.R文件的代码:
library(shiny)
shinyUI(pageWithSidebar(
headerPanel("Shiny Example"),
sidebarPanel(
wellPanel(
selectInput(inputId = "variable1",label = "Select First Variable:",
choices = c("Binary Variable 1" = "binary1",
"Binary Variable 2" = …Run Code Online (Sandbox Code Playgroud) 我使用rCharts nPlot()函数显示应急表类型数据的堆叠或分组条形图."multiBarChart"显示在闪亮的应用程序中.我在闪亮的应用程序中使用的一段代码如下所示.
graphData <- reactive({
as.data.frame(table(eval(inputVar1()),eval(inputVar2())))
})
output$myChart <- renderChart({
p1 <- nPlot(Freq ~ Var1, group="Var2", data=graphData(), type="multiBarChart")
p1$addParams(dom='myChart')
return(p1)
})
Run Code Online (Sandbox Code Playgroud)
在我的数据集中,一个分类变量有16个级别.当沿"multiBarChart"的x轴显示此变量时,并非显示所有标签.有没有办法nPlot调整轴标签的字体大小?我想这样cex.axis=0.5或cex.lab=0.5或类似的东西.
或者,是否有一个参数las=可以让我将轴标签旋转90度,并且可能有一个更清晰的图,其中所有分类变量标签都沿着图的x轴显示.
非常感谢团队提供的任何建议!
我试图使用R/RODBC从Microsoft SQL Server数据库查询变量.RODBC将字符串截断为8000个字符.
原始代码:截断255个字符(根据RODBC文档)
library(RODBC)
con_string <- odbcConnect("DSN")
query_string <- "SELECT text_var FROM table_name"
dat <- sqlQuery(con_string, query_string, stringsAsFactors=FALSE)
部分解决方案:在7999个字符后修改查询字符串截断文本.
library(RODBC)
con_string <- odbcConnect("DSN")
query_string <- "SELECT [text_var]=CAST(text_var AS VARCHAR(8000)) FROM table_name"
dat <- sqlQuery(con_string, query_string, stringsAsFactors=FALSE)
表/变量包含长达250,000个字符的文本字符串.我真的想和R中的所有文本一起工作.这可能吗?
@BrianRipley讨论了以下文档第18页的问题(但没有解决方案):https://cran.r-project.org/web/packages/RODBC/vignettes/RODBC.pdf
@nutterb RODBCext在GitHub上讨论了类似的问题:https:
//github.com/zozlak/RODBCext/issues/6
已经看过关于SO的类似讨论,但没有使用RODBC和VARCHAR> 8000的解决方案.
RODBC sqlQuery()在返回varchar(MAX)时返回varchar(255)
注意:
我在使用Windows 7旗舰版(英特尔酷睿i5-2400 3GHz处理器,8.00GB内存)的PC上运行R版本2.14.0.如果需要其他规格,请告诉我.
我试图模拟相关的beta分布式数据.我使用的方法是本文所写内容的扩展:
http://onlinelibrary.wiley.com/doi/10.1002/asmb.901/pdf
mvrnorm()MASS中的函数).pnorm()probit变换应用于这些数据,以便我的新数据向量存在于(0,1).并且根据之前的陈述仍然相关.qbeta()具有某些shape1和shape2参数的函数,以获得具有特定均值和色散属性的相关β数据.我知道存在生成相关beta数据的其他方法.我感兴趣的是为什么qbeta()导致这种方法失败的某些"种子".以下是我收到的错误消息.
Warning message:
In qbeta(probit_y0, shape1 = a0, shape2 = b0) :
full precision may not have been achieved in 'qbeta'
Run Code Online (Sandbox Code Playgroud)
这是什么意思?怎么可以避免?当它确实发生在更大模拟的上下文中时,确保此问题不会终止整个源(使用source())模拟代码的最佳方法是什么?
我为1:1000的整数种子运行了以下代码.种子= 899是唯一给我带来问题的价值.虽然如果它在这里有问题,它也不可避免地会对其他种子造成问题.
library(MASS)
set.seed(899)
n0 <- 25
n1 <- 25
a0 <- 0.25
b0 <- 4.75
a1 <- 0.25
b1 <- 4.75
varcov_mat <- matrix(rep(0.25,n0*n0),ncol=n0)
diag(varcov_mat) <- 1
y0 <- mvrnorm(1,mu=rep(0,n0),Sigma=varcov_mat)
y1 <- mvrnorm(1,mu=rep(0,n1),Sigma=varcov_mat)
probit_y0 <- pnorm(y0)
probit_y1 <- pnorm(y1)
beta_y0 <- …Run Code Online (Sandbox Code Playgroud) 如何有效地计算在另一个字符串中出现的一个字符串的实例数?
以下是我迄今为止的代码.它成功识别是否在另一个字符串中出现了一个字符串的任何实例.但是,我不知道如何将它从TRUE/FALSE关系扩展到计数关系.
x <- ("Hello my name is Christopher. Some people call me Chris")
y <- ("Chris is an interesting person to be around")
z <- ("Because he plays sports and likes statistics")
lll <- tolower(list(x,y,z))
dict <- tolower(c("Chris", "Hell"))
mmm <- matrix(nrow=length(lll), ncol=length(dict), NA)
for (i in 1:length(lll)) {
for (j in 1:length(dict)) {
mmm[i,j] <- sum(grepl(dict[j],lll[i]))
}
}
mmm
Run Code Online (Sandbox Code Playgroud)
它产生:
[,1] [,2]
[1,] 1 1
[2,] 1 0
[3,] 0 0
Run Code Online (Sandbox Code Playgroud)
由于小写字符串"chris"出现两次,lll[1]我希望mmm[1,1]是2而不是1.
真实的例子是更高的维度...所以如果代码可以被矢量化而不是使用我的强力循环,那就太喜欢了.
r ×9
shiny ×4
csv ×1
economics ×1
glm ×1
list ×1
null ×1
nvd3.js ×1
python ×1
python-3.x ×1
rcharts ×1
regex ×1
rhel ×1
rodbc ×1
shiny-server ×1
simulation ×1
sql-server ×1
truncate ×1
ubuntu-12.04 ×1
url ×1