小编Jos*_*ich的帖子

如何计算两个矩阵的相应列之间的相关性,而不是将其他相关性作为输出

我有这些数据

> a
     a    b    c
1    1   -1    4
2    2   -2    6
3    3   -3    9
4    4   -4   12
5    5   -5    6

> b
     d    e    f
1    6   -5    7
2    7   -4    4
3    8   -3    3
4    9   -2    3
5   10   -1    9

> cor(a,b)
           d            e             f
a  1.0000000    1.0000000     0.1767767
b -1.0000000    -1.000000    -0.1767767
c  0.5050763    0.5050763    -0.6964286
Run Code Online (Sandbox Code Playgroud)

我想要的结果就是:

cor(a,d) = 1
cor(b,e) = -1
cor(c,e) = 0.6964286
Run Code Online (Sandbox Code Playgroud)

r correlation

7
推荐指数
2
解决办法
1万
查看次数

如何将函数应用于嵌套列表?

我需要在嵌套列表中获取最大变量.对于某个站号"s"和某个成员"m",mylist[[s]][[m]]具有以下形式:

station date.time        member  bias
6019    2011-08-06 12:00 mbr003  86
6019    2011-08-06 13:00 mbr003  34
Run Code Online (Sandbox Code Playgroud)

对于每个站,我需要获得bias所有成员的最大值.因为s = 3,我设法通过:

library(plyr)
var1 <- mylist[[3]]
var2 <- lapply(var1, `[`, 4)
var3 <- laply(var2, .fun = max)
max.value <- max(var3)
Run Code Online (Sandbox Code Playgroud)

是否有避免在第二行的列数"4"和使用变量名的方式$biaslapply或做的更好的办法?

r

7
推荐指数
3
解决办法
7099
查看次数

在R中选择表内行的快速方法?

我正在寻找一种从更大的表中提取大量行的快速方法.我的表顶部如下:

> head(dbsnp)

      snp      gene distance
rs5   rs5     KRIT1        1
rs6   rs6   CYP51A1        1
rs7   rs7 LOC401387        1
rs8   rs8      CDK6        1
rs9   rs9      CDK6        1
rs10 rs10      CDK6        1
Run Code Online (Sandbox Code Playgroud)

尺寸:

> dim(dbsnp)
[1] 11934948        3
Run Code Online (Sandbox Code Playgroud)

我想选择列表中包含rownames的行:

> head(features)
[1] "rs1367830" "rs5915027" "rs2060113" "rs1594503" "rs1116848" "rs1835693"

> length(features)
[1] 915635
Run Code Online (Sandbox Code Playgroud)

毫不奇怪,这样做的直接方式temptable = dbsnp[features,]需要相当长的时间.

我一直在研究如何通过R中的sqldf包来实现这一点.我认为这可能会更快.不幸的是,我无法弄清楚如何在SQL中选择具有某些rownames的行.

谢谢.

sql row r sqldf data.table

7
推荐指数
3
解决办法
2260
查看次数

加速在R中使用其中的功能

我有两个矢量eg.我想知道每个元素中元素e的百分比g是否较小.在R中实现这一点的一种方法是:

set.seed(21)
e <- rnorm(1e4)
g <- rnorm(1e4)
mf <- function(p,v) {100*length(which(v<=p))/length(v)}
mf.out <- sapply(X=e, FUN=mf, v=g)
Run Code Online (Sandbox Code Playgroud)

使用大型e或者g,这需要花费大量时间来运行.如何更改或修改此代码以使其运行更快?

注意:mf上面的函数基于messdismo包中函数的代码.

r which sapply

7
推荐指数
1
解决办法
243
查看次数

R:回测交易策略.初学者到quantmod和R.

我对R很新,并试图回溯我在WealthLab中编写的策略.

几个我不明白的东西(它显然不起作用:)

  1. 我没有很好地将关闭价格转换为向量...或某种向量,但它从结构开始,我真的不明白这个函数的作用.这就是为什么我的系列[,1]调用可能不起作用.

  2. n < - nrow(系列)也不起作用,但我需要循环

所以我想如果我得到这两个问题的答案我的策略应该有效......我非常感谢任何帮助......即使有其他语言的编程经验,看起来也很复杂

#rm(list = ls(all = TRUE))

#import data, default is yahoo
require(quantmod)
series <- getSymbols('AAPL',from='2013-01-01')
#generate HLOC series
close <- Cl(AAPL)
open <- Op(AAPL)
low <-Lo(AAPL)
high <- Hi(AAPL)

#setting parameters
lookback <- 24 #24 days ago
startMoney <- 10000


#Empty our time series for position and returns
f <- function(x) 0 * x

position <- apply(series[,1],FUN=f)
colnames(position)="long_short"

returns <- apply(series[,1],FUN=f)
colnames(returns)="Returns"

trades = returns
colnames(trades)="Trades"

amount = returns
colnames(amount) = "DollarAmount"
amt[seq(1,lookback)] …
Run Code Online (Sandbox Code Playgroud)

r quantmod

7
推荐指数
1
解决办法
1万
查看次数

用Rook上传多个文件

HTML5规范允许一次上传多个文件<input type="file", ..., multiple="multiple">.有没有办法利用Rook R包来利用这个?

这是我的尝试,但似乎只显示了一个选定的文件:

library(Rook)

app <- function(env) {
  req <- Rook::Request$new(env)
  res <- Rook::Response$new()
  res$write(
   '<html><body>
      Select files:
      <form method="POST" enctype="multipart/form-data">
        <input type="file" name="data" multiple="multiple">
        <input type="submit" name="Upload">
      </form>
    </body></html>')

  if (!is.null(req$POST())){
    data <- req$POST()[['data']]
    res$write("<pre>")
    res$write(paste(capture.output(req$POST(),file=NULL),collapse='\n'))
    res$write("</pre>")
    res$write("<pre>")
    res$write(paste(capture.output(data$filename,file=NULL),collapse='\n'))
    res$write("</pre>")
  }
  res$finish()
}

s <- Rhttpd$new()
s$add(app=RhttpdApp$new(name="app", app=app))
s$start(listen="127.0.0.1", quiet=FALSE)
s$browse(1)

#s$stop(); s$remove(all=TRUE); rm(s)
Run Code Online (Sandbox Code Playgroud)

html5 r r-rook-package

6
推荐指数
1
解决办法
600
查看次数

模拟季节性ARIMA模型的问题

我试图通过以下命令使用R中的预测包从季节性arima模型生成模拟:

simulate(model_temp)
Run Code Online (Sandbox Code Playgroud)

model_temparima()函数应用于我观察到的时间序列的结果在哪里,顺便提一下,我将模型指定为ARIMA(2,1,2)(0,1,2)[12]模型.

但是,当我尝试这个时,我收到以下错误:

Error in diffinv.vector(x, lag, differences, xi) :
  NA/NaN/Inf in foreign function call (arg 1) 
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么会这样(以及如何避免这个问题)?

我应该进一步补充一点,我知道我应用的模型和产生model_temp的模型不是生成该系列的模型,但是,我仍然希望从该模型(或任何其他模型)生成模拟).

最后,是否可以通过仅指定ar,d,ma,sar,sd,sma和sigma参数从而无需首先创建正确ARIMA类型的对象,从季节性ARIMA模型生成模拟?

感谢您的任何帮助,

乔纳森

r forecasting

6
推荐指数
1
解决办法
3539
查看次数

没有适用于'时间< - '的方法适用于类"c('xts','zoo')的对象"

请将此数据结构放入R中以重现我的示例:

dX <- structure(c(3272.1, 3271.48, 3281.03, 3267.08, 3260.65, NA, 1616.3, 
1620.1, 1639.9, 1637.4, 1669.6, 1662.2, 528.385, 529.268, 531.022, 
532.424, NA, NA), .indexTZ = "", class = c("xts", "zoo"), .indexCLASS = c("POSIXct", 
"POSIXt"), tclass = c("POSIXct", "POSIXt"), tzone = "", index = structure(c(1345147200, 
1345406400, 1345492800, 1345579200, 1345665600, 1345752000), tzone = "", tclass = c("POSIXct", 
"POSIXt")), .Dim = c(6L, 3L), .Dimnames = list(NULL, c("M1WO.Index", 
"GC1.COMB.Comdty", "JGAGGUSD.Index")))
Run Code Online (Sandbox Code Playgroud)

现在试试这段代码:

library(PerformanceAnalytics)
library(quantmod)
library(timeSeries)
charts.PerformanceSummary(R = dX)
Run Code Online (Sandbox Code Playgroud)

并得到此错误:

Error in UseMethod("time<-") :
  no applicable method for …
Run Code Online (Sandbox Code Playgroud)

r zoo xts

6
推荐指数
1
解决办法
5148
查看次数

如何在quantmod包中创建技术指标

我是R的新手,我在创建技术指标方面遇到了一些问题.更具体地说,我想创建一个指标,Fibonacci它将被添加到chartSeries并且将由5条水平线组成.我正在处理的数据是股票的收盘价.因此,我想要创建的图表将在最高收盘价的点处有一条水平线,在最小收盘价的点上有一条水平线,在前两条之间有三条水平线.我为了获取股票收盘价的时间序列的五个值而编写的代码如下:

Fibonacci <- function(x) {
x <- try.xts(x, error = as.matrix)
n <- nrow(x)
min <- runMin(x,n=n)
max <- runMax(x,n=n)
high <- 0.62*(max-min) + min
middle <- 0.5*(max-min) + min
low <- 0.38*(max-min) + min
res <-cbind(na.spline(min),na.spline(max),na.spline(high),
            na.spline(middle),na.spline(low))
colnames(res)<- c("min","max","high","middle","low") 
reclass (res, x)
}
Run Code Online (Sandbox Code Playgroud)

我还编写了以下代码,以便将技术指标添加到现有chartSeriesquantmod包图:

addFibonacci<- function(col = "red",overlay = TRUE){
stopifnot("package:TTR" %in% search() || require("TTR", quietly = TRUE))
lchob <- quantmod:::get.current.chob() 
x <- as.matrix(lchob@xdata)
chobTA <- new("chobTA")
chobTA@new <- !overlay
if …
Run Code Online (Sandbox Code Playgroud)

r quantmod

6
推荐指数
1
解决办法
3200
查看次数

向量子集化性能:名称与索引

如果我有一个v名字的向量:

John       Murray     Lisa       Mike       Joe       Ann 
0.0832090  0.0475580 -0.2797860  0.1086225  0.0104590 -0.0028250 
Run Code Online (Sandbox Code Playgroud)

什么是时间的复杂性v['Joe']v[4]?我想前者会采用O(log n),因为它应该涉及二进制搜索,但我仍然不确定后者是否是O(1).

此外,结果v是否适用于列表/数据框而不是原子向量的情况?

r

6
推荐指数
1
解决办法
214
查看次数

标签 统计

r ×10

quantmod ×2

correlation ×1

data.table ×1

forecasting ×1

html5 ×1

r-rook-package ×1

row ×1

sapply ×1

sql ×1

sqldf ×1

which ×1

xts ×1

zoo ×1