2016-04-13 15 views
0

XTS biçiminde EURUSD verileri var, 2008-03-17'in Yüksek fiyatında bir anormallik değeri var. Bu değeri 0.7 ile değiştirmek istiyorum, ama doğru anlayamıyorum.Belirli bir tarihin xts` verilerinin Yüksek fiyatı nasıl değiştirilir?

kodu altında ve verilerE EURUSD_DAY.High değeri değiştirmek için aşağıdaki kod çalıştı here

library(xts) 
EURUSD_DAY <- structure(c(0.64008, 0.635, 0.63504, 0.64354, 13.717, 0.64033, 
    0.63767, 0.62881, 0.63179, 0.64029, 0.635, 0.63865, 0, 0, 0, 0.64029, 0.635, 
    0.63865), class = c("xts", "zoo"), .indexCLASS = "Date", tclass = "Date", 
    .indexTZ = "UTC", tzone = "UTC", index = structure(c(1205452800, 1205712000, 
    1205798400), tzone = "UTC", tclass = "Date"), .Dim = c(3L, 6L), 
    .Dimnames = list(NULL, c("EURUSD_DAY.Open", "EURUSD_DAY.High", 
    "EURUSD_DAY.Low", "EURUSD_DAY.Close", "EURUSD_DAY.Volume", 
    "EURUSD_DAY.Adjusted"))) 
#EURUSD_DAY <- as.xts(read.zoo("EURUSD_DAY.csv", sep=",", header=TRUE)) 
EURUSD_DAY["2008-03-17"] 
      EURUSD_DAY.Open EURUSD_DAY.High EURUSD_DAY.Low 
2008-03-17   0.635   13.717  0.62881 
      EURUSD_DAY.Close EURUSD_DAY.Volume EURUSD_DAY.Adjusted 
2008-03-17   0.635     0    0.635 

indirilebilir. ama işe yaramadı: coredata kullanarak Ne yapmaya çalışıyorsunuz emin değilim

> a <- coredata(EURUSD_DAY["2008-03-17"]) 
> a 
    EURUSD_DAY.Open EURUSD_DAY.High EURUSD_DAY.Low 
[1,]   0.635   13.717  0.62881 
    EURUSD_DAY.Close EURUSD_DAY.Volume EURUSD_DAY.Adjusted 
[1,]   0.635     0    0.635 
> a[1,2] 
EURUSD_DAY.High 
     13.717 
> a[1,2] <- 0.7 
> a[1,2] 
EURUSD_DAY.High 
      0.7 
> coredata(EURUSD_DAY["2008-03-17"])[1,2] <- 0.7 
Warning message: 
In NextMethod(.Generic) : 
    number of items to replace is not a multiple of replacement length 
> EURUSD_DAY["2008-03-17"] 
      EURUSD_DAY.Open EURUSD_DAY.High EURUSD_DAY.Low 
2008-03-17   0.635   13.717  0.62881 
      EURUSD_DAY.Close EURUSD_DAY.Volume 
2008-03-17   0.635     0 
      EURUSD_DAY.Adjusted 
2008-03-17    0.635 

cevap

2

... ancak doğru bir yaklaşım orijinal nesne üzerinde düzenli alt kümesi işlevini kullanın ve belirtmektir hem satır ve çağrıdaki sütun.

R> EURUSD_DAY["2008-03-17", "EURUSD_DAY.High"] <- 0.7 
R> EURUSD_DAY 
      EURUSD_DAY.Open EURUSD_DAY.High EURUSD_DAY.Low EURUSD_DAY.Close 
2008-03-14   0.64008   0.64354  0.63767   0.64029 
2008-03-17   0.63500   0.70000  0.62881   0.63500 
2008-03-18   0.63504   0.64033  0.63179   0.63865 
      EURUSD_DAY.Volume EURUSD_DAY.Adjusted 
2008-03-14     0    0.64029 
2008-03-17     0    0.63500 
2008-03-18     0    0.63865 
+0

basit ve basit bir çözüm, teşekkürler! – Daniel

İlgili konular