- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试通过以下引用链接引用动物园中的 na.approx 来使用 times
:
http://www.oga-lab.net/RGM2/func.php?rd_id=zoo:na.approx
这是我的代码:
library(tseries)
library(xts)
library(quantmod)
library(ggplot2)
x = read.table("test.dat", header = FALSE, sep="\t", skip=0)
dt<-sprintf("%s %04d",x$A2,x$A4)
dt<-as.POSIXlt(dt,format="%Y-%m-%d %H%M")
y <- data.frame(dt,x$A5)
colnames(y) <- c("date","price")
z <- xts(y[,2],y[,1])
core <- to.minutes(z, OHLC=TRUE, drop.time=FALSE)
colnames(core) <- c("Open","High","Low","Close")
tseq <- seq(start(core),end(core), by = times("00:01:00"))
core <- na.approx(core, xout = tseq)
这是错误消息:
> tseq <- seq(start(core),end(core), by = times("00:01:00"))
Error in seq.POSIXt(start(core), end(core), by = times("00:01:00")) :
could not find function "times"
我该如何解决这个问题?
如果我将其替换为“时间”,则 tseq 会按秒而不是按分钟递增。为什么?
下面是数据文件:
M11 2011-03-10 0 104 365 T N N 1
M11 2011-03-10 0 113 365 T N N 1
M11 2011-03-10 0 113 365 T N N 2
M11 2011-03-10 0 113 365 T N N 1
M11 2011-03-10 0 113 365 T N N 1
M11 2011-03-10 0 114 360 T N N 1
M11 2011-03-10 0 114 360 T N N 10
M11 2011-03-10 0 114 360 T N N 4
M11 2011-03-10 0 114 360 T N N 20
M11 2011-03-10 0 114 360 T N N 10
M11 2011-03-10 0 114 360 T N N 5
M11 2011-03-10 0 114 360 T N N 1
M11 2011-03-10 0 114 360 T N N 4
M11 2011-03-10 0 114 360 T N N 2
M11 2011-03-10 0 115 355 T N N 8
M11 2011-03-10 0 115 355 T N N 12
M11 2011-03-10 0 115 355 T N N 4
M11 2011-03-10 0 115 355 T N N 12
M11 2011-03-10 0 115 355 T N N 5
M11 2011-03-10 0 115 355 T N N 9
M11 2011-03-10 0 115 355 T N N 1
M11 2011-03-10 0 115 355 T N N 3
M11 2011-03-10 0 115 355 T N N 1
M11 2011-03-10 0 115 355 T N N 1
M11 2011-03-10 0 115 355 T N N 1
M11 2011-03-10 0 115 350 T N N 1
M11 2011-03-10 0 115 350 T N N 1
M11 2011-03-10 0 115 345 T N N 2
M11 2011-03-10 0 115 345 T N N 2
M11 2011-03-10 0 118 345 T N N 1
M11 2011-03-10 0 118 345 T N N 1
M11 2011-03-10 0 118 345 T N N 3
M11 2011-03-10 0 118 345 T N N 2
M11 2011-03-10 0 119 345 T N N 1
M11 2011-03-10 0 119 345 T N N 1
M11 2011-03-10 0 120 345 T N N 2
M11 2011-03-10 0 122 350 T N N 1
M11 2011-03-10 0 124 355 T N N 1
M11 2011-03-10 0 126 355 T N N 1
编辑:我将代码编辑为 G.Grothendieck 发布的内容,因此正在运行以下代码:
DF <- read.table(text = Lines)
tt <- as.POSIXct(sprintf("%s %04d", DF[[2]], DF[[4]]), format = "%Y-%m-%d %H%M")
x <- xts(DF[[5]], tt)
xm <- to.minutes(x)
tseq <- seq(start(xm), end(xm), by = 60)
xm.x <- na.approx(xm, xout = tseq)
但是,当我运行以下代码时,出现以下错误:
> apply.daily(xm.x,str(xm.x))
An ‘xts’ object from 2011-03-10 to 2011-06-08 containing:
Data: num [1:129541, 1:4] 350 350 350 350 350 ...
- attr(*, "dimnames")=List of 2
..$ : NULL
..$ : chr [1:4] "x.Open" "x.High" "x.Low" "x.Close"
Indexed by objects of class: [POSIXct,POSIXt] TZ:
xts Attributes:
NULL
Error in get(as.character(FUN), mode = "function", envir = envir) :
object 'FUN' of mode 'function' was not found
我的错误在哪里:?
编辑:用统计函数替换 str 并遇到错误:
testFun <- function(d) {
d <- data.frame(d, rt=seq(1-nrow(d),0));
statfit <- lm(Close ~ poly(rt,4),d)
smry<-summary(statfit)
r_sq<-smry$r.squared
s <- coef(statfit)
ctr<-'X'
nrows<-nrow(d)
price<-d$Close[nrows]
sroot <- polyroot(c(s[2],2*s[3],3*s[4],4*s[5]))
sfun <- function(x) { ret = 2*s[3]+6*s[4]*x+12*s[5]*x*x;ret;}
ret_val <- data.frame(ctr,r_sq,price)
ret_val <- as. matrix(ret_val)
ret_val
}
debug(testFun)
wfun <- function(w) {
tr <- try(rollapply(w,width=20,FUN=testFun,by.column=FALSE, align="right"), silent = TRUE)
}
# is.weekend <- function(x) {
# w <- as.POSIXct(x)
# w %in% c(0,6)
#}
#apply.daily(xm[!is.weekend(index(xm))],wfun)
apply.daily(xm,wfun)
debug: d <- data.frame(d, rt = seq(1 - nrow(d), 0))
debug: statfit <- lm(Close ~ poly(rt, 4), d)
debug: smry <- summary(statfit)
debug: r_sq <- smry$r.squared
debug: s <- coef(statfit)
debug: ctr <- "X"
debug: nrows <- nrow(d)
debug: price <- d$Close[nrows]
debug: sroot <- polyroot(c(s[2], 2 * s[3], 3 * s[4], 4 * s[5]))
debug: sfun <- function(x) {
ret = 2 * p[3] + 6 * p[4] * x + 12 * p[5] * x * x
ret
}
debug: ret_val <- data.frame(ctr, r_sq, price)
debug: ret_val <- as.matrix(ret_val)
debug: ret_val
exiting from: FUN(data[posns, ], ...)
Error in coredata.xts(x) : currently unsupported data type
Calls: print ... coredata.xts -> structure -> coredata -> coredata.xts -> .Call
Execution halted
编辑:我意识到我的错误是因为我的函数 testFun 返回了一个 Zoo 对象,而 apply.daily 需要一个 xts 对象。
tr <- try(rollapply(w,width=20,FUN=testFun,by.column=FALSE, align="right"), silent = TRUE)
tr
str(tr)
2011-04-07 14:59:00 2011-04-07 15:00:00 2011-04-07 15:01:00 2011-04-07 15:02:00
TRUE TRUE TRUE TRUE
2011-04-07 15:03:00 2011-04-07 15:04:00 2011-04-07 15:05:00 2011-04-07 15:06:00
TRUE TRUE TRUE TRUE
2011-04-07 15:07:00 2011-04-07 15:08:00 2011-04-07 15:09:00 2011-04-07 15:10:00
TRUE TRUE TRUE TRUE
2011-04-07 15:11:00 2011-04-07 15:12:00 2011-04-07 15:13:00 2011-04-07 15:14:00
TRUE TRUE TRUE TRUE
‘zoo’ series from 2011-03-10 00:19:00 to 2011-04-07 15:14:00
Data: logi [1:41156] TRUE TRUE TRUE TRUE TRUE TRUE ...
Index: POSIXct[1:41156], format: "2011-03-10 00:19:00" "2011-03-10 00:20:00" ...
function (x)
{
inherits(x, "xts") && is.numeric(.index(x)) && !is.null(indexClass(x))
}
<environment: namespace:xts>
result<-apply.daily(xm,FUN=rollapply(xm,width=20,FUN=testFun,by.column=FALSE, align="right"))
我收到以下错误:
Error in get(as.character(FUN), mode = "function", envir = envir) :
object 'FUN' of mode 'function' was not found
Calls: apply.daily -> period.apply -> match.fun -> get
Execution halted
但是,如果我修改 testFun 代码以返回 xts 对象,则会收到错误。这是函数的修订版:
ret_val <- data.frame(ctr,r_sq,price)
ret_val <- as. matrix(ret_val)
ret_val<-as.xts(ret_val)
ret_val
}
它产生的错误是:
Error in as.POSIXlt.character(x, tz, ...) :
character string is not in a standard unambiguous format
Calls: rollapply ... as.POSIXct.default -> as.POSIXct -> as.POSIXlt -> as.POSIXlt.character
Execution halted
任何人都可以向我建议如何让 testFun 返回 xts 对象而不是 Zoo 对象,以便我可以使用 apply.daily。
最佳答案
试试这个。
library(quantmod)
Lines <- "M11 2011-03-10 0 104 365 T N N 1
...other lines from post...
M11 2011-03-10 0 126 355 T N N 1"
DF <- read.table(text = Lines)
tt <- as.POSIXct(sprintf("%s %04d", DF[[2]], DF[[4]]), format = "%Y-%m-%d %H%M")
x <- xts(DF[[5]], tt)
xm <- to.minutes(x)
tseq <- seq(start(xm), end(xm), by = 60)
xm.x <- na.approx(xm, xout = tseq)
关于r - R 中的动物园 na.approx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9057530/
我做了以下实验,因为 approx 上没有提到复杂数据。帮助页面: Rgames> zfoo [1] 1+ 6i 2+ 7i 3+ 8i 4+ 9i 5+10i Rgames> approx(zfoo
approx 对我来说毫无意义将返回一个列表,因为 - 如果我理解正确的话 - 它返回的列表的两个元素保证是数字且长度相等。鉴于此,返回数组或数据框似乎更有意义。 我正在使用 approx 编写一些函
假设我有一个想要用 pytest 测试的 Python 数据类: @dataclass class ExamplePoint: x: float y: float 通过简单的数学运算,
我最近发现了 zoo 函数 na.approx 但想知道是否有一种方法可以在不改变时区显示方式的情况下使用它,如运行我的可重现示例所示... set.seed(111) x <- xts(matrix
我有一个带前导 NA 的日期向量,我想使用包 zoo 中的 na.approx 为这些 NA 生成一个近似序列。 na.approx 不适用于前导 NA: x <- as.Date(c(rep(NA,
pytest approx 函数看起来真的很酷,正如他们在 documentation 中所说的那样它使用非常直观的语法: >>> from pytest import approx >>> 0.1
我在让 approx() 在 mutate_at() 中工作时遇到问题。我确实设法使用一个很长的 mutate() 函数得到了我想要的东西,但为了将来的引用,我想知道是否有更优雅和更少复制粘贴的 mu
approxfun 的文档声明它“通常比 approx 更有用”。我正在努力解决问题 approxfun .什么时候会approxfun比approx更有用(什么时候 approx 更有用)? 最佳答
在今天早些时候查看 AD Cmdlet -Filter 运算符时,我遇到了一个我以前从未见过的运算符:-approx。我可以在几个博客和一些 TechNet 文章中找到这个运算符,但我找不到任何内容来
我尝试通过以下引用链接引用动物园中的 na.approx 来使用 times: http://www.oga-lab.net/RGM2/func.php?rd_id=zoo:na.approx 这是我
我正在尝试对每个 id 进行线性近似在 year 之间的数据框中使用点 x . dplyr似乎是一个合适的选择,但由于错误,我无法让它工作: Error: incompatible size (9),
这个问题已经有答案了: Why I get error while trying to use LaTeX in plots' label (5 个回答) 已关闭 2 年前。 由于某种原因我无法获取
所以 the documentation for pytest states以下内容: Warning: Changed in version 3.2. In order to avoid incon
我正在尝试删除 NA s 从我的数据框中通过 na.approx() 插值但不能删除所有 NA s。 我的数据框是一个 4096x4096,其中 270.15 作为无效值的标志。我需要所有点的数据都是
我对 R 还很陌生,目前遇到一个问题,数据如下所示: ID h1 h2 h3 h4 h5 h6 h7 h8
请引用以下已经提出的问题: Write 100 million files to s3 和 Too many open files in EMR 这里处理的数据大小至少在 4-5TB 左右。准确地说
我是一名优秀的程序员,十分优秀!