4

我想尽可能高效地将我的 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 对象的最有效方法吗?

4

2 回答 2

3

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

所以read.zoo()像你一样使用——然后马上转换:

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

好?

于 2010-08-18T01:38:54.393 回答
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")在需要任何小功能时加载它(例如)。

于 2010-08-18T06:10:42.793 回答