我使用fread()
从data.table
高效读取大型矩形CSV文件导入R
这些都是double
(只有double
)值 - 不缺少的元素。FREAD无法读取小的数字
但是,如果我在科学记数法中有非常非常小的数字,它将转换为废弃整个阅读的字符。以下是错误消息(作为一个例子,有多个用于每个小数目):
16:在的fread(“SomeCSVFile”):
撞柱560上的数据行16799键入字符,字段包含'-2.1412168512924677E-308'。强制先前将此列中的值从整数或数字读回到可能不会丢失的字符;例如,如果'00'和'000'在它们现在仅为'0'之前发生,并且可能与',,'和',NA'的处理不一致(如果它们在碰撞前发生在该列之前)。如果这个问题请重新运行并为此专栏设置“colClasses”为“字符”。请注意,列类型检测使用前5行,中间5行和最后5行,所以希望此消息应该非常少见。如果要报告给datatable-help,请重新运行并包含来自verbose = TRUE的输出。
我想要函数将它们设置为零或截断它们的最小可能值(或罚款)。
这个问题可以通过提供一些重现问题的示例数据大大改善。 –
真正的问题是什么?你对这些小值有什么实际用途?谁允许Excel表格首先生成它们?如果你打算将它们设置为零,只需读入它们,然后'matrix [is.character(matrix)] < - numeric(0)' –
@CarlWitthoft我不使用Excel,但感谢解决方案。 – user2763361