小编aat*_*lob的帖子

Dummy为系列中的第一个新元素

假设我有一个持续几个时期的变量.就像我有一个Ipod的年数.所以我从2001年到2004年都有Ipod第一代,然后在2005年我得到了Ipod 2等等.所以我的数据框看起来像:

  2001 Ipod1
  2002 Ipod1
  2003 Ipod1
  2004 Ipod1
  2005 Ipod2
  2006 Ipod2
  2007 Ipod2
  2008 Ipod2
  2009 Ipod3
  2010 Ipod3
Run Code Online (Sandbox Code Playgroud)

我想要的是在新变量到来的时候创建一个假人,所以我会得到:

  Year  Var  Dummy
  2001 Ipod1  1
  2002 Ipod1  0
  2003 Ipod1  0
  2004 Ipod1  0
  2005 Ipod2  1
  2006 Ipod2  0
  2007 Ipod2  0
  2008 Ipod2  0
  2009 Ipod3  1
  2010 Ipod3  0
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经能够做到这一点:

df = structure(list(Year = 2001:2010, Var = structure(c(1L, 1L, 1L,
1L, 2L, 2L, 2L, 2L, 3L, 3L), .Label = c("Ipod1", "Ipod2", "Ipod3"
), …
Run Code Online (Sandbox Code Playgroud)

r time-series plyr

5
推荐指数
2
解决办法
156
查看次数

R中GARCH的模拟

我正在模拟GARCH模型.模型本身并不太相关,我想问你的是如何在R中优化模拟.如果你看到任何矢量化的空间,我已经考虑过但我看不到它.到目前为止我所拥有的是:

让:

#    ht=cond.variance in t
#    zt= random number 
#    et = error term
#    ret= return
#    Horizon= n periods ahead
Run Code Online (Sandbox Code Playgroud)

所以这是代码:

randhelp= function(horizon=horizon){
    ret <- zt <- et <- rep(NA,horizon)#initialize ret and zt et
    for( j in 1:horizon){
      zt[j]= rnorm(1,0,1)
      et[j] = zt[j]*sqrt(ht[j])
      ret[j]=mu + et[j]

      ht[j+1]= omega+ alpha1*et[j]^2 + beta1*ht[j]
    }
    return(sum(ret))
  }
Run Code Online (Sandbox Code Playgroud)

我想从现在开始模拟5个周期的回报,所以我将运行这个让我们说10000.

#initial values of the simulation
ndraws=10000
horizon=5 #5 periods ahead
ht=rep(NA,horizon) #initialize ht
ht[1] = 0.0002
alpha1=0.027
beta1 =0.963
mu=0.001
omega=0


sumret=sapply(1:ndraws,function(x) …
Run Code Online (Sandbox Code Playgroud)

r time-series volatility

5
推荐指数
2
解决办法
5268
查看次数

按组编号

假设我们有以下数据库:

ID  Shoot  hit
1     10    2
1      9    3
1      8    1
2     10    8
2      8    8
2     11   10
2      7    2
3      9    2
4      6    6
4      6    5
.
.
Run Code Online (Sandbox Code Playgroud)

我希望在每个组中分配数字,在这种情况下每个ID如下:

ID Shoot hit number.in.group
1   10     2    1
1    9     3    2
1    8     1    3
2   10     8    1
2    8     8    2 
2   11    10    3
2    7     2    4
3    9     2    1
4    6     6    1
4    6     5 …
Run Code Online (Sandbox Code Playgroud)

r

4
推荐指数
3
解决办法
1206
查看次数

列表中的data.frame和字符串中的调用对象

我想从Tsay的金融时间系列书中复制一张表,并意识到尽管我能够做到这一点,但我的代码看起来很笨拙并且填补了不良做法.我尝试了一下plyr,但对我来说并没有真正起作用.

所以这是我的代码:

library(fBasics)

url= 'http://faculty.chicagobooth.edu/ruey.tsay/teaching/fts3/d-ibm3dx7008.txt'

table1.2 = read.table(url,header=T)
l1=lapply(table1.2,basicStats)
naml1 = names(l1)
datmat = as.data.frame(matrix(0,nrow=nrow(l1$Date),ncol=4))

nams = names(l1)
j=1

for( i in nams){
 datmat[,j] = eval(parse(text=paste("l1",i,sep="$")))
 j=j+1
  }

rownames(datmat)= rownames(l1[[1]])
colnames(datmat)=colnames(table1.2)
Run Code Online (Sandbox Code Playgroud)

我不关心Date的摘要统计,所以就这样摆脱它.

datmat =datmat[,-1]
Run Code Online (Sandbox Code Playgroud)

所以我听说eval(解析(text =应该尽可能避免.我尝试使用函数get但是没有工作.

我只是想开始摆脱糟糕的编程习惯,所以任何建议都非常受欢迎.

r

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

标签 统计

r ×4

time-series ×2

plyr ×1

volatility ×1