我试图用新的RStudio功能Shiny创建一个Web应用程序,它绘制了不同的股票.我创建了以下示例.
我想选择数据集StockMarket然后选择例如DAX,然后最终应该出现该图.
现在,如果您运行此代码,则会立即显示该图
请问你能帮帮我吗?
ui.R:
library(shiny)
library(ggplot2)
shinyUI(pageWithSidebar(
# Application title
headerPanel("Plot1"),
sidebarPanel(
selectInput("dataset", "Dataset", list("mtcars"="cars", "StockMarket"="stocks")),
conditionalPanel(
condition = "input.dataset=='stocks'",
uiOutput("data")
)),
mainPanel(
plotOutput('plotstock')) ))
server.R:
library(shiny)
require(ggplot2)
library(datasets)
shinyServer(function(input, output) {
output$data<- reactiveUI(function() {
selectInput("data", "Choose Dataset", colnames(EuStockMarkets))
})
output$plotstock <- reactivePlot(function() {
data<-data.frame(EuStockMarkets)
p<- ggplot(data,aes(x=seq(1,length(data[,1])),y=DAX))+geom_line(size=1)+ylab("")+opts(title="Time Series")
print(p)
})})
Run Code Online (Sandbox Code Playgroud) 我试图编写一个报告,我的问题是,每次我编译R加载我在报告中使用的包(如ggplot2,MASS,cubature ..).这非常耗时.有没有方法来包装?
我找到了cacheSweave,但它不起作用.
这是我在sweave文件中添加的块:
<<cacheSweave, eval=TRUE, echo=FALSE, term=FALSE, cache=TRUE>>=
library(cacheSweave)
lapply(c("ghyp","MASS","nloptr","cubature","ggplot2"), require, character.only=T)
@
Run Code Online (Sandbox Code Playgroud)
谢谢
今天我注意到一些奇怪的事 我写了一个函数,它应该返回一个数据帧和一个图,一个用ggplot2生成的图.
但是如果我运行该函数,则不会出现图或数据帧.
你知道这个问题,可以给我一个解决方案吗?
非常感谢你!
莱纳
这是一个让我自己清楚的虚拟函数:
dummyfunct<-function(){
df <- data.frame(time = factor(c("Lunch","Dinner"), levels=c("Lunch","Dinner")),
total_bill = c(14.89, 17.23))
ggplot(data=df, aes(x=time, y=total_bill)) + geom_bar(aes(fill=time))
return(df)
}
Run Code Online (Sandbox Code Playgroud)
要么
dummyfunct<-function(){
df <<- data.frame(time = factor(c("Lunch","Dinner"), levels=c("Lunch","Dinner")),
total_bill = c(14.89, 17.23))
ggplot(data=df, aes(x=time, y=total_bill)) + geom_bar(aes(fill=time))
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个带有两个叠加密度图的直方图.问题是:我希望一个密度是虚线,它完美地工作但在图例中不会出现虚线,如下例所示
x<-sort(rnorm(1000))
data<-data.frame(x=x,Normal=dnorm(x,mean(x),sd=sd(x)),Student=dt(x,df=3))
ggplot(data,aes(y=x))+geom_histogram(aes(x=x,y=..density..),
color="black",fill="darkgrey")+geom_line(aes(x=x,y=Normal,color="Normal"),size=1,
linetype=2)+ylab("")+xlab("")+labs(title="Density estimations")+geom_line(aes(x=x,y=Student,color="Student"),size=1)+
scale_color_manual(values=c("Student"="black","Normal"="black"))
Run Code Online (Sandbox Code Playgroud)
我是如何获得传奇中的虚线的?
非常感谢你!
莱纳

我想计算一个特征函数已知的分布的密度函数.作为一个简单的例子,采取正态分布.
norm.char<-function(t,mu,sigma) exp((0+1i)*t*mu-0.5*sigma^2*t^2)
Run Code Online (Sandbox Code Playgroud)
然后我想使用R的fft函数.但是我没有得到乘法常数,我必须重新排序结果(取下半部分然后是前半部分的值).我试过类似的东西
xmax = 5
xmin = -5
deltat = 2*pi/(xmax-xmin)
N=2^8
deltax = (xmax-xmin)/(N-1)
x = xmin + deltax*seq(0,N-1)
t = deltat*seq(0,N-1)
density = Re(fft(norm.char(t*2*pi,mu,sigma)))
density = c(density[(N/2+1):N],density[1:(N/2)])
Run Code Online (Sandbox Code Playgroud)
但这仍然不正确.在密度计算的背景下,有人知道R中fft的良好参考吗?显然问题是连续FFT和离散FFT的混合.任何人都可以推荐一个程序吗?谢谢
我正在尝试替换大型data.frame中的某个字符串.我刚刚找到以下解决方案,但gsub不保留原始data.frame布局.我怎样才能做到这一点.
我的意思是我想替换一个字符串,不想改变df的布局.
考虑这个例子:
test<-data.frame(a=c("a","b","c","d"),b=c("a","e","g","h"),c=c("i","j","k","a"))
gsub("a","new",test)
Run Code Online (Sandbox Code Playgroud)
谢谢
我再次面对一个复杂的ggplot.我想使用构面网格在一个图中绘制不同的绘图类型.
我希望我可以使用下面的例子清楚地说明我的观点:我想制作一个类似于第一张图片的图,但上图应该看起来像第二张图.我已经使用子集函数找到了这个技巧,但是我不能将垂直线添加到一个图中,更不用说两个或三个(或指定颜色).
码:
a <- rnorm(100)
b <- rnorm(100,8,1)
c <- rep(c(0,1),50)
dfr <- data.frame(a=a,b=b,c=c,d=seq(1:100))
dfr_melt <- melt(dfr,id.vars="d")
#I want only two grids, not three
ggplot(dfr_melt,aes(x=d,y=value)) + facet_grid(variable~.,scales="free")+
geom_line(subset=.(variable=="a")) + geom_line(subset=.(variable=="b"))
#Upper plot should look like this
ggplot(dfr,aes(x=d,y=a)) + geom_line() + geom_line(aes(y=c,color="c"))+
geom_hline(aes(yintercept=1),linetype="dashed")+
geom_hline(aes(yintercept=-2),linetype="dashed")
Run Code Online (Sandbox Code Playgroud)

