将列表转换为数据帧仅在循环中生成一些NA

时间:2018-06-16 11:14:09

标签: r

我有一个函数,它接受目录的.txt文件名的向量并将它们转换为数据框:

makeList <- function(x) {
  print(x)
  dataList <- jsonlite::fromJSON(x)
  dataTemp <- as.data.frame(dataList, stringsAsFactors = FALSE)
  data <- select(dataTemp, -hit_lats, -hit_lngs)
  return(data)
}

我将此函数应用于文件名: DF <- lapply(filenames, FUN = makeList) 最后,将结果列表绑定到数据框:

dFinal <- data.frame()

for(i in 1:length(DF)){
  dFinal <- rbind(dFinal, DF[[i]])
}

当我在stringsAsFactors = FALSE中不使用as.data.frame时,我会给出一些警告: 警告信息:

1: In `[<-.factor`(`*tmp*`, ri, value = c(5.53719008264463,  ... :
  invalid factor level, NA generated
2: In `[<-.factor`(`*tmp*`, ri, value = c(1.....
...

但我的主要问题是在我的数据框架中,两个变量完全变为NA。但是,我检查了这个过程中的一些单个文件(不是函数),我没有任何NA(显然,我没有为单个文件运行代码的最后一部分)。

有人知道这些NAs产生的原因吗?

0 个答案:

没有答案