小编Jos*_*ich的帖子

R列表 - 如何处理元素名称?

我注意到了这个意外的功能:

foo <- list(whatever=1:10)
Run Code Online (Sandbox Code Playgroud)

现在,以下工作原理:

foo$wha
foo$w
foo$whateve
Run Code Online (Sandbox Code Playgroud)

但是,以下内容不是:

foo[["wha"]]
Run Code Online (Sandbox Code Playgroud)

这会产生意想不到的后果(对我而言是意料之外的),如果您有两个潜在的名称,例如" CXCL1 "和" CXCL11 ",并且您想通过检查知道CXCL1是否为空!is.null(foo$CXCL1),则即使CXCL1也会返回TRUE null,但CXCL11不是.

我的问题是:

  1. 这是如何运作的?
  2. foo$whatever和之间有什么区别foo[["whatever"]]
  3. 为什么有人想要这种行为以及如何禁用它?

syntax r list

11
推荐指数
1
解决办法
124
查看次数

避免在R中使用两个for循环

我有一个R代码,可以进行两个函数的卷积...

convolveSlow <- function(x, y) {  
nx <- length(x); ny <- length(y)  
xy <- numeric(nx + ny - 1)  
for(i in seq(length = nx)) {  
 xi <- x[[i]]  
        for(j in seq(length = ny)) {  
            ij <- i+j-1  
            xy[[ij]] <- xy[[ij]] + xi * y[[j]]  
        }  
    }  
    xy  
}  
Run Code Online (Sandbox Code Playgroud)

有没有办法删除两个for循环并使代码运行得更快?

谢谢你

loops r

10
推荐指数
2
解决办法
6971
查看次数

如何为时间序列中的缺失数据创建"NA"

我有几个数据文件,如下所示:

X code year month day pp  
1 4515 1953     6   1  0  
2 4515 1953     6   2  0  
3 4515 1953     6   3  0  
4 4515 1953     6   4  0  
5 4515 1953     6   5  3.5
Run Code Online (Sandbox Code Playgroud)

有时会丢失数据,但我没有NA,行根本就不存在.我需要在数据丢失时创建NA.我虽然可以通过将其转换为动物园对象来确定何时发生,并检查严格的规律性(我之前从未使用过动物园),但我使用以下代码:

z.date<-paste(CET$year, CET$month, CET$day, sep="/")
z <- read.zoo(CET,  order.by= z.date )
reg<-is.regular(z, strict = TRUE)
Run Code Online (Sandbox Code Playgroud)

但答案总是如此!

谁能告诉我为什么不工作?或者甚至更好,告诉我一种在数据丢失时创建NA的方法(有或没有动物园包)?

谢谢

r time-series missing-data

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

确定当前文件在R中的位置以包含来自同一目录的文件?

我希望能够source()在同一目录中包含不同文件的文件,但我不想在运行此文件之前从R-prompt设置工作目录:

> getwd()
[1] "/Users/myser"
> source("/Users/myuser/workspace/myproject/myfile.r")
Run Code Online (Sandbox Code Playgroud)

在/ Users/myuser/workspace/myproject里面,会有myfile.r和my-utils.r.myfile.r source('my-utils.r')从中调用.

其他编程语言可以确定当前文件的路径.R有类似的东西吗?例:

cur_dir <- sys.get_current_file_path()
source(file.path(cur_dir, "my-utils.r"))
Run Code Online (Sandbox Code Playgroud)

filesystems r system

10
推荐指数
1
解决办法
4304
查看次数

我可以使用R中的write.csv编写一个xts对象吗?

我有一个xts对象,第一列是日期时间,然后是OHLC.当我输入

>test
Run Code Online (Sandbox Code Playgroud)

它打印正确的输出如下:

2010-09-08 15:13:00   115   115  110    115
2010-09-08 15:14:00   120   125  115    125
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试write.csv(test,"test.csv")时,它只写OHLC - 为什么.我用什么命令来写日期时间

这就是str(test)的样子:

An ‘xts’ object from 2010-06-30 15:47:00 to 2010-09-08 15:14:00 containing:
  Data: num [1:21757, 1:4] 215 220 205 195 185 ...
 - attr(*, "dimnames")=List of 2
  ..$ : NULL
  ..$ : chr [1:4] "y.Open" "y.High" "y.Low" "y.Close"
  Indexed by objects of class: [POSIXlt,POSIXt] TZ: 
  xts Attributes:  
 NULL
Run Code Online (Sandbox Code Playgroud)

r xts

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

R使用quantmod获取rownames日期

使用quantmod并从Yahoo收集数据.我正在尝试获取rownames中的日期.但是我只是得到NULL.

library("quantmod")
sp500 <- new.env()

getSymbols("^GSPC", env = sp500, src = "yahoo",
           from = as.Date("2008-01-04"),  to = Sys.Date())
GSPC <- get("GSPC", envir = sp500)
date1 <- rownames(GSPC)

date1
> NULL
Run Code Online (Sandbox Code Playgroud)

我很感激你帮助将rowname日期变成矢量.

r xts quantmod

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

使用rollapply计算滚动相关性

我有10000多行的动物园对象.

> head(tt)
                      A             B
2007-01-04  0.005945924  0.0021167475
2007-01-05 -0.004201991 -0.0080020024
2007-01-08  0.001740897  0.0045804104
2007-01-09  0.000000000 -0.0008163931
2007-01-10 -0.004503531  0.0032615812
2007-01-11 -0.005841138  0.0043863282
Run Code Online (Sandbox Code Playgroud)

我尝试了以下行的变体,但无济于事.

rollapply(tt, 21, function(x) cor(x[,1],x[,2]))
Run Code Online (Sandbox Code Playgroud)

每个条目都给出1的相关性,看起来它正在从相关矩阵的对角线上取下1.

2013-11-25  1  1
2013-11-26  1  1
2013-11-27  1  1
2013-11-29  1  1
2013-12-02  1  1
2013-12-03  1  1
Run Code Online (Sandbox Code Playgroud)

我真正想要的是-0.4649,如下所示

> cor(tt)
           A          B
A  1.0000000 -0.4649881
B -0.4649881  1.0000000
Run Code Online (Sandbox Code Playgroud)

r zoo

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

如何更改R中的时间序列(XTS或ZOO)?

我是stackoverflow的新手,对R来说相当新,但搜索时间很长,很难找到以下问题的答案.

我有许多数据文件是温度与时间序列.我将CSV导入为ZOO对象,然后转换为XTS.正确的文件看起来像这样,有小时和半小时的读数:

>head(master1)
                       S_1
2010-03-03 00:00:00 2.8520
2010-03-03 00:30:00 2.6945
2010-03-03 01:00:00 2.5685
2010-03-03 01:30:00 2.3800
2010-03-03 02:00:00 2.2225
2010-03-03 02:30:00 2.0650
Run Code Online (Sandbox Code Playgroud)

但有些人的时间价值略有偏差 - 即23:59:00而不是00:00:00,或00:29:00而不是00:30:00.

>head(master21)
                       S_21
2010-03-04 23:59:00  -0.593
2010-03-05 00:29:00  -0.908
2010-03-05 00:59:00  -1.034
2010-03-05 01:29:00  -1.223
2010-03-05 01:59:00  -1.349
2010-03-05 02:29:00  -1.538
Run Code Online (Sandbox Code Playgroud)

我想纠正这些时间序列,因为微小差异对我的分析并不重要,我最终想要合并文件,因此每个时间序列需要具有相同的时间.

I want a command that can just say "shift the time series forward by 1 minute, but don't alter the data column (e.g. S_21). I have had some luck with gsub() on easier changes, …

r time-series zoo xts

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

使用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
查看次数

使用索引将xts/zoo对象写入csv

> library(PerformanceAnalytics)
> data(managers)
> class(managers)
[1] "xts" "zoo"
> head(managers)
              HAM1 HAM2    HAM3    HAM4 HAM5 HAM6 EDHEC LS EQ SP500 TR US 10Y TR US 3m TR
1996-01-31  0.0074   NA  0.0349  0.0222   NA   NA          NA   0.0340   0.00380  0.00456
1996-02-29  0.0193   NA  0.0351  0.0195   NA   NA          NA   0.0093  -0.03532  0.00398
1996-03-31  0.0155   NA  0.0258 -0.0098   NA   NA          NA   0.0096  -0.01057  0.00371
1996-04-30 -0.0091   NA  0.0449  0.0236   NA   NA          NA   0.0147  -0.01739  0.00428
1996-05-31  0.0076   NA  0.0353  0.0028   NA   NA          NA …
Run Code Online (Sandbox Code Playgroud)

r zoo xts

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

标签 统计

r ×10

xts ×5

zoo ×3

time-series ×2

filesystems ×1

list ×1

loops ×1

missing-data ×1

quantmod ×1

syntax ×1

system ×1