data.frame对象到R中的xts对象转换

时间:2010-08-18 01:33:21

标签: r dataframe xts

我想尽可能高效地将我的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 个答案:

答案 0 :(得分:3)

如果是文件,则需要阅读。

因此请使用read.zoo() - 但随后立即转换:

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

好吗?

答案 1 :(得分:2)

您可以编写自己的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"))。