You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: vignettes/fr/datatable-fread-and-fwrite.Rmd
+35-35Lines changed: 35 additions & 35 deletions
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ vignette: >
9
9
\usepackage[utf8]{inputenc}
10
10
---
11
11
12
-
```{r echo=FALSE, file='_translation_links.R'}
12
+
```{r echo=FALSE, file='../_translation_links.R'}
13
13
```
14
14
`r .write.translation.links("Une traduction de ce document est disponible en : %s")`
15
15
@@ -57,7 +57,7 @@ L'option `-v` fait que la commande `grep` va renvoyer toutes les lignes sauf cel
57
57
58
58
Voir cet [exemple](https://stackoverflow.com/questions/36256706/fread-together-with-grepl/36270543#36270543) pour d'autres détails.
59
59
60
-
Sous Wndows, les outils en mode ligne de commande tels que `grep` sont disponibles dans divers environnements, tels que Rtools, Cygwin, ou Windows Subsystem for Linux (WSL). Sous Linux et macOS, ces outils sont typiquement inclus dans le système opératoire.
60
+
Sous Wndows, les outils en mode ligne de commande tels que `grep` sont disponibles dans divers environnements, tels que Rtools, Cygwin, ou Windows Subsystem for Linux (WSL). Sous Linux et macOS, ces outils sont typiquement inclus dans le système d'exploitation.
61
61
62
62
#### 1.1.1 Lecture directe à partir d'une chaîne textuelle
63
63
@@ -89,7 +89,7 @@ Dans beaucoup de cas, `fread()` peut automatiquement détecter et décompresser
89
89
90
90
> Note : si l'archive contient plusieurs fichiers, `fread()` échouera avec une erreur.
91
91
92
-
### 1.2 Séparateur automatique et détection des sauts
92
+
### 1.2 Séparateur automatique et détection des sauts de lignes
93
93
94
94
`fread` automatise la détection du délimiteur et de l'entête, en élminant le besoin de le spécifier manuellement dans la plupart des cas. Il suffit de fournir le nom de fichier — `fread` détectera intelligemment la structure :
95
95
@@ -99,79 +99,79 @@ Dans beaucoup de cas, `fread()` peut automatiquement détecter et décompresser
99
99
100
100
**Détection de l'entête**
101
101
102
-
Après avoir appliqué les éventuelles valeurs de `skip` ou de `nrows` (si spécifiées), la première ligne qui comporte un nombre cohérent de champs cohérent est analysée :
102
+
Après avoir appliqué les éventuelles valeurs de `skip` ou de `nrows` (si spécifiées), la première ligne qui comporte un nombre cohérent de champs est analysée :
103
103
104
104
Si on peut interpréter tous les champs de cette ligne comme des caractères et que les valeurs ne ressemblent pas trop à une ligne de données (par exemple une ligne de valeurs purement numériques pourrait encore être considérée comme des données), alors il s'agit typiquement d'une ligne d'entête (le nom des colonnes).
105
105
106
106
Sinon (c'est à dire si la ligne contient des types numériques reconnus, ou des chaînes de caractères qui ressemblent fortement à des nombres et qui pourraient être des données), elle est traitée comme une ligne de données et reçoit les noms de colonnnes par défaut (`V1`, `V2`, …).
107
107
108
108
Vous pouvez dire explicitement à fread si une entête existe en utilisant `header = TRUE` ou `header = FALSE`.
109
109
110
-
**Détection des sauts**
110
+
**Détection des sauts de lignes**
111
111
112
112
Par défaut (`skip="auto"`), `fread` va automatiquement sauter les lignes vides ainsi que les lignes de commentaires (celles qui commencent par `#`) avant l'entête des données. Pour forcer manuellement un nombre donné de lignes, utilisez use `skip=n`.
113
113
114
114
### 1.3 Détection avancée et automatique du type de colonne
115
115
116
-
Many real-world datasets contain columns that are initially blank, zero-filled, or appear numeric but later contain characters. To handle such inconsistencies, `fread()`in`data.table`employs a robust column type detection strategy.
116
+
Dans le monde réel, beaucoup d'ensembles de données contiennent des colonnes qui sont vides au départ, remplies par des zéros, ou qui apparaissent numériques mais qui contiendront des caractères ultérieurement. Pour gérer de telles incohérences, `fread()`de`data.table`utilise une stratégie robuste de détection du type de colonne.
117
117
118
-
Since v1.10.5, `fread()`samples rows by reading blocks of contiguous rows from multiple equally spaced points across the file, including the start, middle, and end. The total number of rows sampled is chosen dynamically based on the file size and structure, and is typically around 10,000, but can be smaller or slightly larger. This wide sampling helps detect type changes that occur later in the data (e.g., `001`to `0A0`or blanks becoming populated).
118
+
Depuis la v1.10.5, `fread()`échantillonne les lignes en lisant des blocs de lignes contigües à partir de plusieurs points espacés régulièrement dans l'ensemble du fichier, y compris le début, le milieu et la fin. Le nombre de lignes échantillonnées est choisi dynamiquement en fonction de la taille et de la structure du fichier et vaut typiquement aux environs de 10 000, mais il peut être plus petit ou légèrement supérieur. Ce grand échantillonnage aide à détecter les changements de type qui se produisent ultérieurement dans les données (par exemple `001`qui devient `0A0`ou des blancs qui deviennent des valeurs).
119
119
120
-
**Efficient File Access with mmap**
120
+
**Accès aux fichier performant avec mmap**
121
121
122
-
To implement this sampling efficiently, `fread()`uses the operating system's memory-mapped file access (`mmap`), allowing it to jump to arbitrary positions in the file without sequential scanning. This lazy, on-demand strategy makes sampling nearly instantaneous, even for very large files.
122
+
Pour implémenter efficacement cet échantillonnage, `fread()`utilise le mappage en mémoire de l'accès aux fichiers du système d'exploitation (`mmap`), ce qui permet de sauter à des positions arbitraires dans le fichier sans le parcourir séquentiellement. Cette stratégie paresseuse à la demande rend l'échantillonnnage presque instantané même avec des fichiers très gros.
123
123
124
-
If a jump lands within a quoted field that includes newlines, `fread()`tests subsequent lines until it finds 5 consecutive rows with the expected number of fields, ensuring correct parsing even in complex files.
124
+
Si la destination du saut se trouve dans un champ entre guillemets comprenant des passages à la ligne, `fread()`teste les lignes qui suivent jusqu'à trouver 5 lignes consécutives avec le nombre attendu de champs, pour permettre une analyse correcte même avec des fichiers complexes.
125
125
126
-
**Accurate and Optimized Type Detection**
126
+
**Détection précise et optimisée du type**
127
127
128
-
The type for each column is inferred based on the lowest required type from the following ordered list:
128
+
Le type de chaque colonne est déduit en se basant sur le type le plus bas nécessaire de la liste ordonnée suivante :
-Single up-front allocation of memory using the correct type
135
-
-Avoidance of rereading the file or manually setting colClasses
136
-
-Improved speed and memory efficiency
134
+
-d'allouer la mémoire de manière unique à l'avance en utilisant le type correct
135
+
-d'éviter la relecture du fichier ou de définir les colClasses manuellement
136
+
-d'améliorer la vitesse et efficacité de la mémoire
137
137
138
-
**Out-of-Sample Type Exceptions**
138
+
**Exceptions sur le type dans les valeurs non échantillonnées**
139
139
140
-
If a type change occurs outside the sampled rows, `fread()`automatically detects it and rereads the file to ensure correct type assignment, without requiring user intervention. For example, a column sampled as integer might later contain`00A` — triggering an automatic reread as character.
140
+
Si le type est modifié dans les lignes qui ne sont pas échantillonnées, `fread()`détecte cela automatiquement et relit le fichier pour rétablir l'assignation correcte du type, sans nécessiter l'intervention de l'utilisateur. Par exemple une colonne échantillonnée comme entier pourrait ultérieurement contenir`00A` — ce qui déclenchera une relecture automatique en tant que caractère.
141
141
142
-
All detection logic and any rereads are detailed when `verbose=TRUE` is enabled.
142
+
En activant `verbose=TRUE` vous pourrez voir toute la logique de détection ainsi que les relectures.
143
143
144
-
### 1.4 Early Error Detection at End-of-File
144
+
### 1.4 Détection des erreurs au plus tôt à la fin du fichier
145
145
146
-
Because the large sample explicitly includes the very end of the file, critical issues—such as an inconsistent number of columns, a malformed footer, or an opening quote without a matching closing quote—can be detected and reported almost instantly. This early error detection avoids the unnecessary overhead of processing the entire file or allocating excessive memory, only to encounter a failure at the final step. It ensures faster feedback and more efficient resource usage, especially when working with large datasets.
146
+
Parce qu'un grand nombre d'échantillons signifie que l'on se rapproche de la fin du fichier, les problèmes critiques tels qu'un nombre incohérent de colonnes, un bas de page mal formaté, ou des guillemets ouvrants qui ne sont pas fermés — peuvent être détectés et rapportés presque instantanément. Cette détection d'erreurs au plus tôt évite la surcharge d'un nouveau traitement du fichier complet ou l'allocation excessive de la mémoire, simplement pour trouver une erreur à la fin. Cela permet une réaction plus rapide et une utilisation plus efficace des ressources, particulièrement lorsque vous travaillez avec de gros ensembles de données.
147
147
148
-
### 1.5 `integer64` Support
148
+
### 1.5 Prise en charge de `integer64`
149
149
150
-
By default, `fread`detects integers larger than 2<sup>31</sup> and reads them as `bit64::integer64`to preserve full precision. This behavior can be overridden in three ways:
150
+
Par défaut, `fread`détecte les entiers plus grands que 2<sup>31</sup> et les lit en tant que `bit64::integer64`pour préserver la précision complète. Ce comportement peut être redéfini de trois manières :
151
151
152
-
-Per-column: Use the`colClasses`argument to specify the type for individual columns.
152
+
-par colonne : utiliser l'argument`colClasses`pour spécifier le type des colonnes individuelles.
153
153
154
-
-Per-call: Use the`integer64`argument in `fread()`to set how all detected `integer64`columns are read.
154
+
-par appel : utiliser l'argument`integer64`dans `fread()`pour définir la manière dont toutes les colonnes `integer64`détectées seront lues.
155
155
156
-
-Globally: Set the option `datatable.integer64`in your R session or `.Rprofile`file to change the default behavior for all fread calls.
156
+
-globalement : définir l'option `datatable.integer64`de votre session R ou du fichier `.Rprofile`pour modifier le comportement par défaut pour tous les appels de fread.
157
157
158
-
The integer64 argument (and corresponding option) accepts the following values:
158
+
L'argument integer64 et l'option correspondante acceptent les valeurs suivantes :
159
159
160
-
-`"integer64"` (default): Reads large integers as `bit64::integer64`with full precision.
160
+
-`"integer64"` (par défaut) : lit les entiers longs en tant que `bit64::integer64`avec la précision complète.
161
161
162
-
-`"double"`or`"numeric"`: Reads large integers as double-precision numbers, potentially losing precision silently (similar to`utils::read.csv`in base R).
162
+
-`"double"`ou`"numeric"`: lit les entiers longs en tant que nombres à double précision, éventuellement en perdant discrètement la précision (similaire à`utils::read.csv`en base R).
163
163
164
-
-`"character"`: Reads large integers as character strings.
164
+
-`"character"` : lit les entiers longs en tant que chaînes de caractères.
165
165
166
-
To check or set the global default, use:
166
+
Pour vérifier ou définit le comportement global par default, utilisez :
167
167
168
168
```{r}
169
-
# fread's default behavior is to treat large integers as "integer64"; however, this global setting can be changed:
170
-
options(datatable.integer64 = "double") # Example: set globally to "double"
169
+
# le comportement par défaut de fread est de traiter les entiers longs comme "integer64"; mais ce paramètre global peut être modifié :
170
+
options(datatable.integer64 = "double") # Exemple : définir globalement à "double"
171
171
getOption("datatable.integer64")
172
172
```
173
173
174
-
### 1.6 Drop or Select Columns by Name or Position
174
+
### 1.6 Ignorer ou sélectionner les colonnes par nom ou par position
175
175
176
176
To save memory and improve performance, use `fread()`'s `select` or `drop` arguments to read only the columns you need.
0 commit comments