我最近开始玩Shiny.我试图写一些东西来证明中心极限定理.我的代码如下:
ui.R:
#****************************************ui.R file code*****************************
library(shiny)
shinyUI(pageWithSidebar(headerPanel("Central Limit Theorem"),
sidebarPanel(selectInput("Distribution",
"Distribution:",
list("normal", "lognormal")),
br(),
sliderInput("sam_size",
"Sample size:",
min = 5,
max = 500,
value = 5)
),
mainPanel(tabPanel("Plot", plotOutput("plot")))
))
Run Code Online (Sandbox Code Playgroud)
server.R:
#****************************************server.R file code**************************
library(shiny)
shinyServer(function(input, output){
data <- reactive(function(){Distribution <- switch(input$Distribution,
normal = rnorm,
lognormal = rlnorm,
rnorm
)
Distribution(input$sam_size*2000)})
output$plot <- reactive(function(){
Distribution <- input$Distribution
sam_size <- input$sam_size
temp <- matrix(data(), ncol=2000)
xbars <- colMeans(temp)
hist(xbars, main=paste("Sampling Distribution of the Mean Based on a", Distribution,
"distribution with n …Run Code Online (Sandbox Code Playgroud) 假设我有一个列表列表,如下所示(实际列表更长):
fruits = [['apple', 'pear'],
['apple', 'pear', 'banana'],
['banana', 'pear'],
['pear', 'pineapple'],
['apple', 'pear', 'banana', 'watermelon']]
Run Code Online (Sandbox Code Playgroud)
在这种情况下,在列表中的所有项目['banana', 'pear'],['apple', 'pear']并且['apple', 'pear', 'banana']都包含在列表中['apple', 'pear', 'banana', 'watermelon'](项目的顺序并不重要),所以我想删除['banana', 'pear'],['apple', 'pear']以及['apple', 'pear', 'banana']因为它们的子集['apple', 'pear', 'banana', 'watermelon'].
我目前的解决方案如下所示.我首先使用ifilter并imap为每个列表可能具有的超集创建生成器.然后对于那些有超集的情况,我使用compress并imap放弃它们.
from itertools import imap, ifilter, compress
supersets = imap(lambda a: list(ifilter(lambda x: len(a) < len(x) and set(a).issubset(x), fruits)), fruits)
new_list = list(compress(fruits, imap(lambda x: …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个data.frame,其中一些单元格缺少值.我不知道是否有任何隐藏NA的方法,而不是显示NA?我想要的就像一个ANOVA表,如下所示.
x = rnorm(40)
y = rep(1:2, each=20)
z = rep(c(1,2,1,2), each=10)
model1 = lm(x~y * z)
model2 = lm(x~y + z)
anova(model1, model2)
#Analysis of Variance Table
#Model 1: x ~ y * z
#Model 2: x ~ y + z
#Res.Df RSS Df Sum of Sq F Pr(>F)
#1 36 38.931
#2 37 39.248 -1 -0.31705 0.2932 0.5915
Run Code Online (Sandbox Code Playgroud)
输出在上面.如果您尝试访问这些空白单元格,您将获得NA
anova(model1, model2)[1,4]
#[1] NA
Run Code Online (Sandbox Code Playgroud)
提前致谢!!
昨天,我问一个问题,关于如何绘制多个(水平-ISH)线,每一个用户指定的颜色,而无需使用一个循环.
我尝试使用建议的函数matplot()绘制下图中显示的短垂直线和相关代码.
ci = matrix(1:30, nrow=3, byrow=T)
ci=list(rbind(ci[1,], ci[1,]+2),
rbind(ci[2,], ci[2,]+2),
rbind(ci[3,], ci[3,]+2))
x = rbind(1:10, 1:10)
plot(-5, xlim=c(1,10), ylim=c(1,32))
invisible(mapply(matlines, x=list(x), y=ci,
col=c("red","blue","black"),
lty = 1))
Run Code Online (Sandbox Code Playgroud)

这一切都很好.但是,我试图将此代码包装在一个函数中,我希望能够输入一个可选参数列表,然后可以将其传递给mapply/matlines.我试图在mapply()中使用参数MoreArgs无济于事.似乎MoreArgs所采用的论点与其他论点不同.正如您在第一个代码中看到的,列表中的每个项目都有不同的颜色,但是当我将col放在列表args.ci中时,3个颜色在列表的每个项目中被回收.我想知道是否有任何方法可以解决这个问题,这样如果我有一个参数的多个值,每个值都会应用于列表的一个项目.谢谢!
args.ci = list(col=c("red","blue","black"), lty=1:3)
plot(-5, xlim=c(1,10), ylim=c(1,32))
invisible(mapply(matlines, x=list(x), y=ci,
MoreArgs = args.ci))
Run Code Online (Sandbox Code Playgroud)

我想编写一个函数,它接受任何用户提供的数学函数(例如,x ^ 2)并用它做不同的事情,例如:
#-----------------nonworking code---------------------
foo <- function(FUN, var){
math_fun <- function(x){
FUN
}
curve(math_fun, -5, 5) #plot the mathematical function
y = math_func(var) #compute the function based on a user provided x value.
points(x=var, y=y) #plot the value from the last step.
}
#A user can use the function defined above in a way as shown below:
Function <- x^2 + x
foo(FUN=Function, var = 2)
Run Code Online (Sandbox Code Playgroud)
但显然这个功能不起作用:首先,如果我运行这个功能,我得到Error in math_fun(x) : object 'x' not found.
其次,即使函数确实有效,我假设变量是x,但用户可以使用任何字母. …
我试图在绘图中绘制点,其中每个点由数字表示.但是,似乎这些点只能是一个字符长,正如您在下面的代码生成的图中可以看到的那样:
set.seed(1); plot(rnorm(15), pch=paste(1:15))
Run Code Online (Sandbox Code Playgroud)

我想知道是否有任何解决方法.谢谢.
我试图将一个要点嵌入网页.以下面的要点为例:
<script src="https://gist.github.com/Astr0surf3r/5208714.js"></script>
Run Code Online (Sandbox Code Playgroud)
我想知道是否有办法设定要点的宽度.例如,我想使要点比默认宽度窄.
我有一大堆鼠标点击的x和y坐标.下面是这些坐标的简单散点图.

正如您所看到的,显然,似乎有3个区域的点击相对更集中.我想以反映点击相对集中度的方式绘制这些点击 - 例如,点击高浓度区域的圆圈相对较大或颜色较深.显然,一个简单的散点图并没有表明这一点.我尝试过以下帖子,但结果不是我想要的.
因此,任何建议将不胜感激.