R中的数据帧标头错误

时间:2014-11-16 23:52:50

标签: r dataframe

我编写了一个应该返回数据帧的函数。虽然输出正常,但输出的标题不正确。当我初始化数据帧(输出)时,我清楚地标记了两列是'id'和'nobs'。但是,在输出中,列分别标记为X30和X932。有人可以帮忙吗?

这是我的代码

complete <- function(directory, id) {
  output <- data.frame(id=character(),
                   nobs=character(), 
                   stringsAsFactors=FALSE)
  files <- list.files()
  for (i in id){
  mydata <- read.csv(files[i])
  nobs <- nrow(na.omit(mydata))
  tempVector <- c(i, nobs)
  output <- rbind(output, tempVector)
}

print(output)

}

2 个答案:

答案 0 :(得分:1)

如果没有可重复的示例,我无法测试,但是如果你tempVector <- data.frame(id=i, nobs=nobs),我认为它会按你想要的方式工作。

或者,您可以保存几行代码并执行:

  mydata <- read.csv(files[i])
  output <- rbind(output, data.frame(id=i, nobs=nrow(na.omit(mydata))))

答案 1 :(得分:1)

如果我是正确的,你只想知道这个id中的id和观察次数 请改为readLines

id <- 1:3
files <- list.files()
files_nrow <- function(id){
  c(id=id, nobs= length(readLines(files[id])))
}

data.frame(t(sapply(id,files_nrow)))

结果:

  id nobs
1  1   12
2  2   8
3  3   13