2013-10-25 19 views
8

Hi: Tôi có một đối tượng XTS như vậy:ADD một cột mới vào một đối tượng XTS

  AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted 
2013-09-09 505.00 507.92 503.48  506.17 12116200  506.17 
2013-09-10 506.20 507.45 489.50  494.64 26490200  494.64 
2013-09-11 467.01 473.69 464.81  467.71 32031600  467.71 
2013-09-12 468.50 475.40 466.01  472.69 14409400  472.69 

tôi cố gắng tính toán một cán nghĩa và gắn nó vào một cột mới như vậy

AA["AAPL.Rolling"] <- rollmean(AA[,"AAPL.Adjusted"],12) 

Mặc dù rollmean(AA[,"AAPL.Adjusted"],12) hoạt động độc lập; Tôi nhận được thông báo lỗi khi cố gắng đính kèm vào cột mới. ** cũng là những gì làm cho điều này khó khăn là các cán mới có nghĩa là sẽ không có dữ liệu trong mỗi hàng kể từ 12 đầu tiên nên được "NA" Bất cứ ai có thể giúp đỡ? Cảm ơn bạn rất nhiều.

+0

Giải pháp đã cố gắng của bạn không có ý nghĩa gì. 'rnorm (12, AA)' cung cấp cho bạn 12 quan sát từ một phân phối ngẫu nhiên bình thường với 'mean = AA [1: 12,1]' và sd = 1. Điều đó thậm chí không gần với một trung bình lăn. Và bạn đang cố gắng thêm một đối tượng sở thú làm cột của đối tượng xts? Tại sao bạn nghĩ rằng nên làm việc? –

+0

@JoshuaUlrich, xấu của tôi - Tôi đã chỉnh sửa bản gốc – Ahdee

Trả lời

13

Bạn không thể thêm cột vào đối tượng zoo/xts như vậy. Bạn có thể sử dụng chức năng $<-.

AA$AAPL.Rolling <- rollmean(AA[,"AAPL.Adjusted"], 12) 

Cũng lưu ý rằng rollmean được căn giữa theo mặc định. Bạn có thể muốn sử dụng rollmeanr để nhận được căn phải. Đệm với NA sẽ tự động diễn ra vì bạn đang hợp nhất giá trị trung bình với đối tượng gốc. Sử dụng fill=NA nếu bạn muốn rollmean để thêm chúng một cách rõ ràng.

+0

Điều này là hoàn hảo; thậm chí đã dự đoán một vấn đề với rollmean! – Ahdee

+0

muốn biết ý kiến ​​của Josh về việc thêm vectơ ký tự vào các đối tượng xts này. vì vậy bạn sẽ có một cột char và một cột int/số .... – d8aninja

+0

@ d8aninja: Điều đó là không thể bởi vì các đối tượng xts được dựa trên lớp ma trận, và bạn không thể có các cột với các kiểu khác nhau trong một ma trận. Điều đó nói rằng, đã có một số thử nghiệm với một lớp "xtsdf". –

Các vấn đề liên quan