2016-11-16 5 views
0

Я вхожу в Excel CSV и просматриваю с помощью str(returns.xts). Следующий код генерирует значения символов в пределах xts.Создайте xts из числа .csv с некоторыми символами/"# N/A"

file <- "~/GCS/returns_Q216.csv" 
returns_Q216_ <- read.csv(file=file) 
returns <- read.zoo(data.frame(returns_Q216_), FUN = as.Date, format='%d/%m/%Y') 
returns.xts <- as.xts(returns) 

Каков наилучший способ преобразовать содержимое XTS в числовой от характера при сохранении XTS (и даты колонки)?

> `str(returns)` 
An ‘xts’ object on 2007-01-31/2015-05-31 containing: 
    Data: `chr` [1:101, 1:18] "-0.002535663" "-0.001687755" "0.032882512" "0.024199512" "0.027812955" ... 
- attr(*, "dimnames")=List of 2 
    ..$ : NULL 
    ..$ : chr [1:18] "UK.EQUITY" "EUR.EQUITY" "NA.EQUITY" "ASIA.EQUITY" ... 
    Indexed by objects of class: [Date] TZ: UTC 
    xts Attributes: 
NULL 
> returns[8,9] 
      PROPERTY  
2007-08-31 "-4.25063E-05" 

Когда я пытаюсь as.numeric(returns.xts) я получаю структуру 1x1 ячейки без даты как строки.

> str(as.numeric(returns)) 
num [1:1818] -0.00254 -0.00169 0.03288 0.0242 0.02781 ... 
+1

Не могли бы вы попробовать это: 'returns_Q216_ <- read.csv (файл = файл, colClasses = C ("символ", представитель ("Числовой", N)), stringsAsFactors = FALSE); returns_xts = XTS (returns_Q216 _ [- 1], order.by = as.Date (returns_Q216 _ [1], "% д /% м /% Y")) '. Заменить N на число числовых столбцов в файле – OdeToMyFiddle

+0

Да. Строки после 129 были заполнены «# N/A» из отсутствующих значений Bloomberg (будущие даты). Числовое значение не выполнено. Есть ли способ, которым они могут быть превращены в R 'NA' и в то же время, что и число.numeric() или ColClasses "numeric" все еще работает, чтобы заставить данные xts как num? – rrg

+0

Я понимаю, что преобразование 'matrix' в' data.frame' приводит к тому, что кавычки, вызванные недопустимыми номерами, исчезают, но есть ли способ создать зоопарк, если есть недопустимые данные (возможно, они заменены на 'NA'). – rrg

ответ

1

Вы должны использовать na.strings аргумент read.csv (который может быть передан через read.zoo), как я уже говорил в my answer to your previous question.

file <- "~/GCS/returns_Q216.csv" 
returns <- read.zoo(file, FUN=as.Date, format='%d/%m/%Y', na.strings="#N/A") 
returns.xts <- as.xts(returns) 

 Смежные вопросы

  • Нет связанных вопросов^_^