преобразование объекта data.frame в xts в R - PullRequest
4 голосов
/ 18 августа 2010

Я бы хотел максимально эффективно преобразовать мои csv-файлы в объекты xts.Я, кажется, застрял с необходимостью сначала применить метод read.zoo для создания объектов зоопарка, прежде чем смог преобразовать его в объект xts.

gold <- read.zoo("GOLD.CSV", sep=",", format="%m/%d/%Y", header=TRUE)

Gold <- as.xts (gold, order.by=index(gold), frequency=NULL)

Является ли это наиболее эффективным способом преобразования моегоисходный файл GOLD.CSV в объект R xts?

Ответы [ 2 ]

3 голосов
/ 18 августа 2010

Если это файл, вам необходимо прочитать его.

Так что используйте read.zoo() как вы - но затем преобразуйте прямо:

 gold <- as.xts(read.zoo("GOLD.CSV", sep=",", format="%m/%d/%Y", header=TRUE))

Ok

2 голосов
/ 18 августа 2010

Вы можете написать свою собственную функцию read.xts.Мы бы назвали это функцией-оберткой, и она должна что-то вроде

read.xts <- function(x, format = "%m/%d/%Y", header = TRUE, sep = ",") {
  result <- as.xts(read.zoo(x, sep = sep, format = format, header = header))
  return(result)
}

read.xts(file.choose())  # select your file

Обратите внимание на аргументы в function().Они передаются в тело функции (код между фигурными скобками).Если function() аргументы имеют значения, это означает, что это их значение по умолчанию.Если вы назначите новые значения (например, function(x = "my.file.csv", sep = "\t")), они будут перезаписаны по умолчанию.Последняя строка показывает вам, как вы можете использовать вашу новую функцию.Не стесняйтесь расширять эту функцию остальными аргументами read.zoo.Если у вас есть какой-то конкретный вопрос о том, как это сделать, не стесняйтесь и просто спросите.:)

Я использую несколько таких маленьких драгоценных камней в своей повседневной работе.Я создал файл с именем workhorse.R и загружаю его (например, source("d:/workspace/workhorse.R")) всякий раз, когда мне нужна какая-либо из маленьких функций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...