r - fread 读取数据结构的引号错误
问题描述
我有一个 5 G 的文件数据要加载。fread 似乎是一种加载它们的快速方法,但它读取了我所有的数据结构错误。看起来是导致问题的引号。
# Codes. I don't know how to put raw csv data here.
dt<-fread("data.csv",header=T)
dt2<-read.csv("data.csv",header=T)
str(dt)
str(dt2)
这是输出。fread变量的所有数据结构都是char,不管是num还是char。
解决方案
奇怪fread
的是 id 列没有使用数字,也许某些条目包含非数字值?
文档建议使用colClasses
参数。
dt <- fread("data.csv", header = T, colClasses = c("numeric", "character"))
该文档有使用此参数的警告:
类(命名或未命名)的字符向量,如 read.csv。或列名或数字向量的命名列表,请参阅示例。fread 中的 colClasses 旨在用于罕见的覆盖,而不是常规使用。如果 colClasses 请求它, fread 只会将列提升为更高的类型。它不会将列降级为较低的类型,因为会产生 NA。如果您确实需要数据丢失,您必须在之后自己强制这些列。
推荐阅读
- html - 单击链接时避免固定标题的部分重叠:绘制顺序问题
- javascript - 如何将 MVC 数据绑定到 Plotly
- python - python 3 pyautogui.click() 被非活动应用程序“阻止”
- scala - Scala 泛型类型约束和特殊行为
- qt - 如何禁用 Qt 按钮标签上的 & 特殊处理?
- javascript - 是否可以为所有反应组件自动导入 JS 文件?
- spring - RESTful 服务的 Spring Boot 异常(错误)处理
- reactjs - 反应路由器返回空白屏幕
- python - 阻止某个 discord.py 频道中的命令
- javascript - 将文本框值从一个文件传递到另一个文件