我希望尽可能高效地将我的csv文件转换为xts对象。然而,我似乎被卡住了,必须先应用read.zoo方法创建一个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对象的最有效方式吗?
read.zoo()
,但随后立即进行转换: gold <- as.xts(read.zoo("GOLD.CSV", sep=",", format="%m/%d/%Y", header=TRUE))
Ok?
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
参数。如果您对如何实现有任何具体问题,请不要害羞,直接问吧。 :)source("d:/workspace/workhorse.R")
)。cubed <- function(x) x^3
。现在尝试一下 cubed(1:3)
。 - Dirk Eddelbuettel
zoo
对象,它有一个索引并且不需要order.by
。 - Dirk Eddelbuettelxts
和as.xts
。请比较args(xts:::as.xts.zoo)
和args(xts)
。 - Joshua Ulrich