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