2

I would like to use a character vector object to easily extract column data from an xts object. I simply tried to assign the first column name to a variable x and call it by using mx$x, but it is no use. Is there any way to do this?

library(xts)
mx <- xts(rnorm(10), Sys.Date()+1:10)
colnames(mx) <- "good"
x <- "good"
mx$x
# NULL
mx[x]
# Error in if (length(c(year, month, day, hour, min, sec)) == 6 && c(year,  : 
# missing value where TRUE/FALSE needed
# In addition: Warning messages:
# 1: In as_numeric(YYYY) : NAs introduced by coercion
# 2: In as_numeric(YYYY) : NAs introduced by coercion
mx[[x]]
# Error in mx[[x]] : subscript out of bounds
Joshua Ulrich
  • 173,410
  • 32
  • 338
  • 418
sh2657
  • 127
  • 1
  • 11

1 Answers1

9

Try mx[,x]:

R> mx[,x]
                 good
2016-07-27 -0.4565496
2016-07-28  1.7436667
2016-07-29 -0.9803478
2016-07-30 -1.1954349
2016-07-31 -0.7583871
2016-08-01 -0.2496221
2016-08-02  1.6043962
2016-08-03  0.8236225
2016-08-04 -0.5089324
2016-08-05  1.1036047
Joshua Ulrich
  • 173,410
  • 32
  • 338
  • 418
Chris
  • 1,150
  • 3
  • 13
  • 29