gpt4 book ai didi

R : read timeseries data using xts package

转载 作者:行者123 更新时间:2023-12-04 11:49:14 24 4
gpt4 key购买 nike

我有一个时间序列 json 数据。我需要计算给定日期对之间的日期值对。我使用以下方式解决了这个问题。在这里,我需要获取 1995-01-01 和 2000-01-01 之间的值并且它有效。但是是否可以使用 xtszoo 包来执行此操作?什么是更好的方法?我如何使用 xts 包处理这种类型的 json 值?

json <-  "[\n {\n \"1986-03-13\": 0.0034722 \n},\n{\n \"1987-09-21\": 0.0069444 \n},\n{\n \"1990-04-16\": 0.013889 \n},\n{\n \"1991-06-27\": 0.020833 \n},\n{\n \"1992-06-15\": 0.03125 \n},\n{\n \"1994-05-23\": 0.0625 \n},\n{\n \"1996-12-09\":  0.125 \n},\n{\n \"1998-02-23\":   0.25 \n},\n{\n \"1999-03-29\":    0.5 \n},\n{\n \"2003-02-18\":      1 \n} \n]"
dates <- c()
values <- c()
for(i in 1:length(fromJSON(json))){
data <- fromJSON(json)[i]
date = names(data[[1]])
value = toString(data[[1]])
dates <- c(dates,date)
values <- c(values,value)
}
df <- data.frame(date=dates,value= values)
> df
date value
1 1986-03-13 0.0034722
2 1987-09-21 0.0069444
3 1990-04-16 0.013889
4 1991-06-27 0.020833
5 1992-06-15 0.03125
6 1994-05-23 0.0625
7 1996-12-09 0.125
8 1998-02-23 0.25
9 1999-03-29 0.5
10 2003-02-18 1

splDates <- c()
for(date in df$date){
if(as.Date(date) >= as.Date("1995-01-01") & as.Date(date) <= as.Date("2000-01-01") ){
splDates <- c(splDates,date)
}
}
df1 <- df[which(df$date %in% splDates),]
> df1
date value
7 1996-12-09 0.125
8 1998-02-23 0.25
9 1999-03-29 0.5

最佳答案

使用xts包,你可以尝试这样的事情

require(RJSONIO)
require(xts)

json <- "[\n {\n \"1986-03-13\": 0.0034722 \n},\n{\n \"1987-09-21\": 0.0069444 \n},\n{\n \"1990-04-16\": 0.013889 \n},\n{\n \"1991-06-27\": 0.020833 \n},\n{\n \"1992-06-15\": 0.03125 \n},\n{\n \"1994-05-23\": 0.0625 \n},\n{\n \"1996-12-09\": 0.125 \n},\n{\n \"1998-02-23\": 0.25 \n},\n{\n \"1999-03-29\": 0.5 \n},\n{\n \"2003-02-18\": 1 \n} \n]"

data <- data.frame(date = unlist(lapply(fromJSON(json), names)),
value = unname(unlist(fromJSON(json))),
stringsAsFactors = FALSE
)

data <- xts(data$value, as.Date(data$date))
data["1995-01-01::2000-01-01"]
## [,1]
## 1996-12-09 0.125
## 1998-02-23 0.250
## 1999-03-29 0.500

关于R : read timeseries data using xts package,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17440790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com