我试图预测python statsmodels ARIMA包中的时间序列,包含一个外生变量,但无法弄清楚在预测步骤中插入外生变量的正确方法.请参阅此处了解文档.
import numpy as np
from scipy import stats
import pandas as pd
import statsmodels.api as sm
vals = np.random.rand(13)
ts = pd.TimeSeries(vals)
df = pd.DataFrame(ts, columns=["test"])
df.index = pd.Index(pd.date_range("2011/01/01", periods = len(vals), freq = 'Q'))
fit1 = sm.tsa.ARIMA(df, (1,0,0)).fit()
#this works fine:
pred1 = fit1.predict(start=12, end = 16)
print(pred1)
Out[32]:
2014-03-31 0.589121
2014-06-30 0.747575
2014-09-30 0.631322
2014-12-31 0.654858
2015-03-31 0.650093
Freq: Q-DEC, dtype: float64
Run Code Online (Sandbox Code Playgroud)
现在添加一个趋势外生变量
exogx = np.array(range(1,14))
#to make this easy, let's look at …Run Code Online (Sandbox Code Playgroud) 我想通过sparklyr将本地桌面RStudio会话连接到远程spark会话.当您在RStudio的sparklyr ui选项卡中添加新连接时,选择cluster表示您必须在群集上运行,或者具有到群集的高带宽连接.
任何人都可以阐明如何创建这种连接?我不知道如何创建这个可重复的例子,但一般来说我想做的是:
library(sparklyr)
sc <- spark_connect(master = "spark://ip-[MY_PRIVATE_IP]:7077", spark_home = "/home/ubuntu/spark-2.0.0", version="2.0.0")
Run Code Online (Sandbox Code Playgroud)
来自远程服务器.我知道会有延迟,特别是如果尝试在遥控器之间传递数据.我也理解在实际的集群上安装rstudio服务器会更好 - 但这并不总是可行的,我正在寻找一个闪亮的选项来在我的服务器和我的桌面RStudio会话之间进行交互.谢谢.
我需要调用一个数据库,该数据库在knitr的R块中的表名中有下划线.有几千个表名,更改名称将是一个巨大的麻烦.就像是:
<<classRun,fig=FALSE,print=FALSE,echo=FALSE>>=
getdat = function(nbr1,nbr2){
library(RODBC)
database.dsn1<-c("db")
database.user1<-c("username")
database.password1<-c("password")
channel<-odbcConnect(database.dsn1, database.user1, database.password1)
dat = sqlQuery(channel,paste("select * from table_",nbr1,"_",nbr2, sep=""))
}
@
<< results='asis', echo = FALSE>>=
dat = getdat(10,20)
print(dat)
@
Run Code Online (Sandbox Code Playgroud)
由于"table_10_20"中的下划线,我得到错误,我错过了$("Missing $ inserted").添加'\ $ \'和'\ $ \',我已经玩了很多,你可以命名.还使用了cat()和paste(),单引号和双引号.有什么建议?在此先感谢您的帮助.我正在运行Ubuntu 11.10,并使用pdfLaTeX从RStudio调用knitr,如果这很重要的话.
我正在研究一个项目来分析函数输出,所以需要在R中作为参数传递一个函数.为了澄清,我有不同数量的模型,并且我没有寻求设置模型的帮助,只是传入模型函数名称进入评分函数.
这适用于直接调用,但我想使它更通用于构建模块.这是一个简短的例子:
#create a test function:
model1 = function(y,X){
fit = lm(y~X)
output = data.frame(resid = fit$residuals)
}
#score function:
score = function(y,X,model){
y= as.matrix(y)
X = as.matrix(X)
fitModel = model(y,X)
yhat = y - fitModel$residual
output = data.frame(yhat=yhat)
}
Run Code Online (Sandbox Code Playgroud)
我可以使用有效的y和X垫来调用此代码
df <- data.frame(x=rnorm(5),y=runif(5))
scoreModel1 = score(df$y,df$x,model1)
Run Code Online (Sandbox Code Playgroud)
但我正在寻找的是一种列出所有模型,循环和/或以通用方式调用得分函数的方法.例如:
models = c("model1")
scoreModel1 = score(df$y,df$x,models[1])
Run Code Online (Sandbox Code Playgroud)
我用上面的代码得到的错误是
Error in score(y, X, model) :
could not find function "model"
Run Code Online (Sandbox Code Playgroud)
我玩过as.function(),列出并取消列出args,但没有任何作用.例如,以下所有args都呈现了与上面相同的错误
models = c(model1)
models = list(model1)
models = list("model1")
Run Code Online (Sandbox Code Playgroud)
预先感谢您的帮助.
我试图用滑块进行反应式UI,通过闪亮的下拉进入和退出.我有一个带有reactiveUI滑块的服务器(server.R):
library(shiny)
shinyServer(function(input, output) {
output$slider1 <- reactiveUI(function() {
sliderInput("s1", "slide 1", min = 1, max = 100, value = 1)
})
output$slider2 <- reactiveUI(function() {
sliderInput("s2", "slide 2", min = 1, max = 100, value = 1)
})
})
Run Code Online (Sandbox Code Playgroud)
我可以使用以下代码(ui.R)运行服务器:
library(shiny)
shinyUI(pageWithSidebar(
headerPanel("Hello Shiny!"),
sidebarPanel(
selectInput("dataset", "number of buckets:",
choices = c(1,2,3)),
conditionalPanel(
condition = "input.dataset==2",
uiOutput("slider1"),uiOutput("slider2")),
conditionalPanel(
condition = "input.dataset==1",
sliderInput("s1", "slide 1", min = 1, max = 100, value = 1)
)
),
mainPanel(
)
))
Run Code Online (Sandbox Code Playgroud)
但如果我尝试让两个conditionalPanel调用uiOutput,服务器会冻结: …
我有超过20万个小数据集,它们具有相同的变量(n <1000,通常n <100),我想连接到主数据集.我已经尝试使用一个宏来使用数据步骤来迭代所有新数据集并使用"set master new:"与master连接,但这需要很长时间.此外,如果我尝试同时运行,则调用执行数据步骤表示我在一个巨大的服务器盒上内存不足.作为参考,所有小数据集一起只有5个Gigs.任何建议将不胜感激.这是我到目前为止:
%macro catDat(name, nbr) ;
/*call in new dataset */
data new ;
set libin.&name ;
run ;
/* reorder names */
proc sql noprint;
create table new as
select var1, var2, var3
from new;
quit;
%if &nbr = 1 %then %do ;
data master;
set new;
run;
%end;
%if &nbr > 1 %then %do ;
data master;
set master new ;
run;
%end ;
%mend;
/* concatenate datasets */
data runthis ;
set datasetNames ; …Run Code Online (Sandbox Code Playgroud) 当我将inspect()对象保存在R的tm包中时,它会打印到屏幕上.它确实在data.frame中保存了我想要的数据,但是我有数以千计的文档需要分析,而且屏幕上的打印正在耗尽我的记忆.
library(tm)
data("crude")
matrix <- TermDocumentMatrix(corpus,control=list(removePunctuation = TRUE,
stopwords=TRUE))
out= data.frame(inspect(matrix))
Run Code Online (Sandbox Code Playgroud)
我尝试过每一个我能想到的技巧.capture.output()更改对象(不是所需的效果),sink()也是如此.dev.off()不起作用.invisible()什么都不做.suppressWarnings(),suppressMessages()和try()毫不奇怪地什么都不做.inspect命令中没有静音或静音选项.
我能得到的最接近的是
out= capture.output(inspect(matrix))
out= data.frame(out)
Run Code Online (Sandbox Code Playgroud)
这显然不会提供相同的data.frame,但如果我需要沿着这条路走下去很容易.任何其他(不那么hacky)的建议都会有所帮助.谢谢.
Windows 7 64位R-3.0.1 tm软件包是最新版本(0.5-9.1).
我确信我在这里遗漏了一些东西,但是我想用附加到端点的jsPlumb.draggable类属性来扩展div的拖动行为,同时保留jsPlumb.draggable属性.
我想要这样的东西(改编自这个SO):
$('#dragcodes').draggable(
{
drag: function(){
var offset = $(this).offset();
var xPos = offset.left;
var yPos = offset.top;
console.log('x: ' + xPos);
console.log('y: ' + yPos);
}
});
Run Code Online (Sandbox Code Playgroud)
在使用以下方法创建的元素上:
jsPlumb.draggable($(".dragcodes"));
Run Code Online (Sandbox Code Playgroud)
这是我想要做的一个例子.我希望顶部框能够像底部一样读取拖动位置,但无法弄清楚如何破解拖动:jsPlumb.draggable中的函数.这里的绑定行为越来越近,但我想要定位附加到端点的div.如果我覆盖拖动:功能,我将失去jsPlumb.draggable属性.在此先感谢您的帮助.
抱歉,此问题很难完全重现,因为它涉及运行中的spark上下文(在下文中称为sc),但是我试图在sparklyr中设置hadoopConfiguration,专门用于从RStudio sparklyr中访问swift / objectStore对象Spark对象,但通常是对hadoopConfiguration的scala调用。类似于(标量代码)的内容:
sc.hadoopConfiguration.set(f"fs.swift.service.$name.auth.url","https://identity.open.softlayer.com"/v3/auth/tokens")
Run Code Online (Sandbox Code Playgroud)
其中sc是运行中的spark上下文。我可以在SparkR中运行(R代码)
hConf = SparkR:::callJMethod(sc, "hadoopConfiguration")
SparkR:::callJMethod(hConf, "set", paste("fs.swift.service.keystone.auth.url"), paste("https://identity.open.softlayer.com/v3/auth/tokens",sep=""))
Run Code Online (Sandbox Code Playgroud)
在sparklyr中,我尝试了所有这种想法,但是我最大的猜测是(再次使用R代码)
sc %>% invoke("set", paste("fs.swift.service.keystone,auth.url"), paste("https://identity.open.softlayer.com/v3/auth/tokens",sep=""))
Run Code Online (Sandbox Code Playgroud)
但这会导致非详细错误(和不规则拼写)
Error in enc2utf8(value) : argumemt is not a character vector
Run Code Online (Sandbox Code Playgroud)
当然,我尝试过以我能想到的所有方式对输入进行编码(自然是enc2utf8(value)是第一个,但是还有许多其他内容,包括列表和as.character(as.list(...))火花编码器的最爱)。任何建议将不胜感激。我已经整理了sparklyr的源代码,并且在sparklyr github中找不到任何提及hadoopConfiguration的内容,因此恐怕我在核心配置中缺少一些非常基本的内容。我也曾尝试在spark_connect()核心调用的config.yml中传递这些配置,但是在将“ fs.swift.service.keystone.auth.url”设置为sc $ config $ s时,这是可行的。 swift.service.keystone.auth.url设置,显然无法将其设置为核心hadoopConfiguration。
顺便说一句,我正在使用Spark1.6,scala 2.10,R 3.2.1和sparklyr_0.4.19。