R:如何检查是否有索引日期列?

时间:2014-03-04 10:33:38

标签: r dataframe xts

我正在为xts和数据帧编写导出函数。并且要导出的数据需要始终具有相同的结构:Date列,然后是1到n个数据列。如果我在导出之前将所有内容转换为数据框,那么这已经非常有用了:

这是功能的一部分:

exportVariable<-function(VariableName){
  if(exists(VariableName)){
    #Variable exists already
    #get because VariableName is a string
    if(is.data.frame(get(VariableName))){
      VariableDF<-get(VariableName)
    } else if(is.xts(get(VariableName))) {
      VariableDF<-data.frame(date=index(get(VariableName)),coredata(get(VariableName)))
    } else {
      stop("If you want to export a variable from the workspace, you need to make sure it's a data frame or xts!") 
    }
  } else {
    stop("Variable doesn't exist")
  }

  File<-paste("O:/users/test/desktop/","Testfile.csv",sep="")

  CSVDF<-VariableDF
  CSVDF[,1]<-format(CSVDF[,1],"%Y:%m:%d")

  write.csv(CSVDF,file=File,row.names=FALSE,quote=FALSE)
}

但是,如果有人将自己的xts转换为数据框然后使用我的函数,它会在以后崩溃,因为我想转换日期列(假设列号为1)。下面是一些显示我的意思的例子:

library(quantmod)
getSymbols("AAPL")
AAPLDF<-as.data.frame(AAPL)

您看到这里只有一列数据框,日期列是索引。那么,如果有日期索引,我如何在我的函数中检查它是否是数据框?所以我也可以转换它:

VariableDF<-data.frame(date=index(get(VariableName)),coredata(get(VariableName)))

0 个答案:

没有答案