我使用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