小编Jos*_*ich的帖子

使用R从XTS对象拉出本月第一个工作日的退货

如果我在解释这个问题时得到任何错误的术语,那么我对R很新,所以道歉.

我在csv文件中有一组每日返回数据,我已设法将其转换为xts对象.数据格式如下:

           HighYield..EUR. MSCI.World..EUR.
2002-01-31          0.0144           0.0031    
2002-02-01          0.0056          -0.0132       
2002-02-02          0.0373           0.0356       
2002-02-03         -0.0167          -0.0644      
2002-02-04         -0.0062          -0.0332      
2002-02-05         -0.0874          -0.1112 
...
Run Code Online (Sandbox Code Playgroud)

我想创建一个脚本,它将找到该月的第一个工作日(从索引中的值范围),然后创建一个新的xts对象,其中包含这些返回值.

例如,在脚本运行后,我将使用以下格式的xts对象:

           HighYield..EUR. MSCI.World..EUR.
2002-01-31          0.0144           0.0031    
2002-02-28          0.0011          -0.0112       
2002-03-31          0.0222           0.0224       
2002-04-30         -0.0333          -0.0223      
2002-05-30         -0.0011          -0.0012      
2002-06-30         -0.0888          -0.0967 
...
Run Code Online (Sandbox Code Playgroud)

有谁可以帮助我吗?并且如果可能的话,解释脚本的每个部分正在做什么.

r xts

9
推荐指数
1
解决办法
1523
查看次数

哪个时间序列类在R中用于财务数据?

对于处理金融时间序列,如每日股票价格或日内数据,哪些时间序列包是首选?xts,普通动物园,或者时间系列还是别的什么?我同时使用xts和动物园,但有时候不确定只使用xts,或者有时候动物园有更轻的开销; 此外,我还记得Rmetrics对所有这些软件包的评论文章,声称xts甚至无法完成他们所做的一些测试.但我现在找不到报纸了.

r time-series zoo xts

8
推荐指数
1
解决办法
1077
查看次数

na.locf但不做尾随的NA

我有以下时间序列

> y<- xts(1:10, Sys.Date()+1:10)
> y[c(1,2,5,9,10)] <- NA
> y
           [,1]
2011-09-04   NA
2011-09-05   NA
2011-09-06    3
2011-09-07    4
2011-09-08   NA
2011-09-09    6
2011-09-10    7
2011-09-11    8
2011-09-12   NA
2011-09-13   NA
Run Code Online (Sandbox Code Playgroud)

一个直的na.locf给我这个:

> na.locf(y)
           [,1]
2011-09-04   NA
2011-09-05   NA
2011-09-06    3
2011-09-07    4
2011-09-08    4
2011-09-09    6
2011-09-10    7
2011-09-11    8
2011-09-12    8
2011-09-13    8
Run Code Online (Sandbox Code Playgroud)

我怎么做到这一点?

           [,1]
2011-09-04   NA
2011-09-05   NA
2011-09-06    3
2011-09-07    4
2011-09-08    4
2011-09-09    6
2011-09-10    7
2011-09-11    8
2011-09-12    NA
2011-09-13    NA
Run Code Online (Sandbox Code Playgroud)

我不希望最后一次观察结果除了最后一个非缺失值之外,即不会替换尾随的NA.非常感谢你的帮助!

r time-series zoo xts

8
推荐指数
1
解决办法
1805
查看次数

使用子集从data.frame中删除列的列表

我经常需要从data.frame中删除列列表.

我经常这样做:

to.remove <- c("hp","drat","wt","qsec")
mtcars[,-which(names(mtcars) %in% to.remove)]
Run Code Online (Sandbox Code Playgroud)

哪个工作正常.

但我希望能够以更清洁的方式使用subset.但它似乎附加了data.frame,然后将列名称作为变量而不是字符串来访问.

例如,这是我希望能够做到的:

subset(mtcars,select=-to.remove)
Run Code Online (Sandbox Code Playgroud)

有没有办法强制subsetselect语句中使用字符串向量?还是有另一个更好的选择吗?

r dataframe

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

如果缺少日值,如何将字符串日期转换为日期类

我正在尝试将以下日期转换为R中的时间类.出于某种原因,当未包含日值时,我将返回NAs.我希望能够按原样处理这个字符向量,而不必粘贴任意日值.谢谢你的帮助.

TS <- c("2004-12", "2005-01", "2005-02", "2005-03", "2005-04", "2005-05", 
"2005-06", "2005-07", "2005-08", "2005-09", "2005-10", "2005-11", 
"2005-12", "2006-01", "2006-02", "2006-03", "2006-04", "2006-05", 
"2006-06", "2006-07", "2006-08")
TSd <- paste(TS, "01", sep="-")

#doesn't work
as.Date(TS, format="%Y-%m")
as.POSIXlt(TS, format="%Y-%m")

#works
as.Date(TSd, format="%Y-%m-%d")
as.POSIXlt(TSd, format="%Y-%m-%d")
Run Code Online (Sandbox Code Playgroud)

r date

8
推荐指数
1
解决办法
4494
查看次数

用以前的值替换缺失值

Event,Time,Bid,Offer
Quote,0.458338,9.77,9.78
Order,0.458338,NA,NA
Order,0.458338,NA,NA
Order,0.458338,NA,NA
Quote,0.458363,9.78,9.79
Order,0.458364,NA,NA
Run Code Online (Sandbox Code Playgroud)

我有一个像这样的数据框我想写一个有效的代码来填充NA以前的报价出价并询问,时间是排序的,只有报价包含出价和要求字段(最好是矢量化)

所以它变成了

Event,Time,Bid,Offer
Quote,0.458338,9.77,9.78
Order,0.458338,9.77,9.78
Order,0.458338,9.77,9.78
Order,0.458338,9.77,9.78
Quote,0.458363,9.78,9.79
Order,0.458364,9.78,9.79
Run Code Online (Sandbox Code Playgroud)

谢谢

r zoo

8
推荐指数
1
解决办法
8222
查看次数

将data.frame转换为zoo

我想将a转换data.frame为zoo对象.我df看起来像那样:

> (str(StockPriceReturns))
'data.frame':   3036 obs. of  2 variables:
 $ Date        : Factor w/ 3036 levels "01.01.2002","01.01.2003",..: 1 102 202 301 600 701 802 902 1001 1300 ...
 $ TotalReturns: num  183 183 186 191 191 ...
NULL
Run Code Online (Sandbox Code Playgroud)

我尝试了什么:

直:

我在这里得到一个错误......

> (z1 <- read.zoo(StockPriceReturns, drop=FALSE))
Error in read.zoo(StockPriceReturns, drop = FALSE) : 
  index has 3036 bad entries at data rows: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 …
Run Code Online (Sandbox Code Playgroud)

statistics r zoo

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

提取xts对象的数值

我想提取xts对象的数值.我们来看一个例子

data <- new.env()
starting.date <- as.Date("2006-01-01")
nlookback <- 20
getSymbols("UBS", env = data, src = "yahoo", from = starting.date)
Reg.curve <- rollapply(Cl(data$UBS), nlookback, mean, align="right")
Run Code Online (Sandbox Code Playgroud)

Reg.cuve仍然是一个XTS对象,但实际上我在行走机构只关心.如何修改Reg.curve以获得数字向量?

r xts

8
推荐指数
1
解决办法
9353
查看次数

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

我需要在嵌套列表中获取最大变量.对于某个站号"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
查看次数

我可以嵌套并行::: parLapply()吗?

假设我想在R中做一些通常(在一个进程/线程中)看起来像这样的东西:

for(i in 1:2) {
    for(j in 1:2) {
        #Do some stuff here
    }
}
Run Code Online (Sandbox Code Playgroud)

在四核机器上使用R的新包并行,我可以执行以下操作吗?

cluster<-makeCluster(4)

innerLoop<-function() {
   #Do some stuff here
}

outerLoop<-function() { 
   result<-do.call(, parLapply(cluster, c(1:2), innerLoop))
}

final.result<-do.call(, parLapply(cluster, c(1:2), outerLoop))
Run Code Online (Sandbox Code Playgroud)

这是否可以使用R-2.14.0附带的并行包?

parallel-processing r

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

标签 统计

r ×10

xts ×4

zoo ×4

time-series ×2

dataframe ×1

date ×1

parallel-processing ×1

statistics ×1