R如何获取for循环中的值的索引

时间:2015-05-23 18:25:56

标签: r

我正在做一些处理,这是我的代码

wrongDateValues <- function(date){
    wrongIndexes <- c()
    wrongValues <- c()
    for(value in date){
      formattedDate <- strptime(value, "%Y%m%d")
      if(is.na(formattedDate)){
        wrongValues <- c(wrongValues, value)
        wrongIndexes <- c(wrongIndexes, value)
      }
    }
    wrongResults <- matrix(c(wrongValues, wrongIndexes), byrow = FALSE, ncol = 2)
    colnames(wrongResults) <- c("WrongValues", "WrongIndexes")
    return (wrongResults)
}

如你所见,现在在wrongIndexes我正在保存值,因为**我不知道如何保存索引**

你可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您似乎只是想在向量中查找非日期值。没有for循环有更好的方法

wrongDateValues<-function(x) {
    dt<-strptime(x, "%Y%m%d")
    bad<-which(is.na(dt))
    data.frame(WrongValues = x[bad], WrongIndexes=bad)
}
x<-c("20010605", "20120420","bad","20150101")
wrongDateValues(x)

在for循环中,您只能访问正在迭代的值,您无权访问当前索引。如果您需要当前索引,则需要迭代它而不是值本身。