r - 将列表转换为数据框仅在循环中生成一些 NA
问题描述
我有一个函数,它采用目录的 .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 吗?
解决方案
推荐阅读
- python - 如何根据 Python 中的某些标头拆分文本文件并下载音频文件
- javascript - 如何根据标签在 JavaScript 中的顺序更改标签的内部 HTML?
- angular - Angular 9.0.5 无法绑定 ngIf 和 ngFor
- ssis - Excel 连接管理器无法通过 SSIS VS19 连接
- javascript - 无法读取未定义的属性“标题”
- jenkins - 在詹金斯管道的阶段内动态生成代理
- python - Pandas 折线图 - 底部的 y 轴高值和顶部的低值(翻转 180 度)
- flutter - 我如何知道列表中最畅销的产品是什么?飞镖
- webstorm - 如何在 WebStorm 中为 TypeScript 设置 cypress run
- amazon-web-services - (InsufficientCapabilitiesException):需要能力:[CAPABILITY_AUTO_EXPAND]