我有一个函数,它接受目录的.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产生的原因吗?