2017-10-22 1 views
2

전체 (복수 행), xts 개체에서 xts 개체의 단일 행 데이터를 어떻게 뺍니까?다중 열 xts 행을 빼는 방법

출력으로부터 MWE

require(xts) 
data(sample_matrix) 
x <- as.xts(sample_matrix) 
x-coredata(x['2007-06-09'])[1,] 

는, R은 문맥 박탈 행 벡터를 가지고, 상기 기둥에 걸쳐 재활용하여 감산있다.

예. 나는 다음과 뺄셈

x-coredata(x[2,])[1,] 

을 X

a1 b1 c1 d1 
a2 b2 c2 d2 

대신에 XTS 다음 개체를 사용하여 만들어진 경우, 결과는 것

a1-a2 b1-c2 c1-a2 d1-c2 
a2-b2 b2-d2 c2-b2  0 

내 의도 된 출력 :

a1-a2 b1-b2 c1-c2 d1-d2 
    0  0  0  0 

답변

1

당신은 사용할 수 scale()

data(sample_matrix) 
x <- tail(as.xts(sample_matrix), 5) 

scale(x, center=unlist(tail(x, 1)), scale=FALSE) 

#     Open  High   Low  Close 
# 2007-06-26 -0.231679339 -0.3251569 -0.23167934 -0.1510840 
# 2007-06-27 -0.051446746 -0.2245367 -0.07452939 -0.1395032 
# 2007-06-28 0.001354599 -0.2366639 -0.10227449 -0.1600355 
# 2007-06-29 -0.038391981 -0.1656322 -0.05735147 -0.1024815 
# 2007-06-30 0.000000000 0.0000000 0.00000000 0.0000000 
1

이후후드 아래에 숫자 매트릭스를 가지고 zoo에서상속, 우리는 모든 일반적인 matrix 작업을 활용할 수 있습니다

library(xts) 
set.seed(911) 
myXts <- xts(cbind(rnorm(5), rnorm(5)), seq(as.Date("2017-10-22"), length.out = 5, by = 1)) 

myXts - 5 # subtracts 5 from every cell 
sweep(myXts, 2, c(5, 1)) # subtracts 5 from col 1, and 1 from col 2 (all rows) 
myXts[2, ] <- myXts[2, ] - c(5, 1) # subtract only from row 2 and replace the existing 
관련 문제