Skip to content

Commit 0acda4d

Browse files
authored
Update datatable-fread-and-fwrite.Rmd #7251 FR
completed
1 parent e18038c commit 0acda4d

File tree

1 file changed

+45
-46
lines changed

1 file changed

+45
-46
lines changed

vignettes/fr/datatable-fread-and-fwrite.Rmd

Lines changed: 45 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ print(dt_from_text)
8080

8181
#### 1.1.3 Décompression automatique des fichiers compressés
8282

83-
8483
Dans beaucoup de cas, `fread()` peut automatiquement détecter et décompresser les fichiers directement en utilisant les extensions de compression communes et sans avoir besoin d'un objet de connexion explicite ou de commandes du shell. Il se base sur l'extension du fichier.
8584

8685
**Les extensions reconnues incluent typiquement :**
@@ -173,73 +172,73 @@ getOption("datatable.integer64")
173172

174173
### 1.6 Ignorer ou sélectionner les colonnes par nom ou par position
175174

176-
To save memory and improve performance, use `fread()`'s `select` or `drop` arguments to read only the columns you need.
175+
Pour économiser de la mémoire et pour améliorer les performances, utilisez les arguments `select` ou `drop` de `fread()` pour lire uniquement les colonnes dont vous avez besoin.
177176

178-
- If you need only a few columns, use `select`.
179-
- If you want to exclude just a few, use `drop`—this avoids listing everything you want to keep.
177+
- Si vous avez besoin uniquement de quelques colonnes, utilisez `select`.
178+
- Si vous voulez exclure uniquement quelques colonnes, utilisez `drop` — ceci évite de lister tout ce que vous voulez garder.
180179

181-
Key points:
182-
- `select`: Vector of column names/positions to keep (discards others).
183-
- `drop`: Vector of column names/positions to discard (keeps others).
184-
- Do not use `select` and `drop` together—they are mutually exclusive.
185-
- `fread()` will warn you if any specified column is missing in the file.
180+
Points clé:
181+
- `select` : vecteur de noms de colonnes ou de positions à garder (les autres seront ignorés).
182+
- `drop`: vecteur de noms de colonnes ou de positions à ignorer (leas autres sont gardés).
183+
- N'utilisez pas `select` et `drop` simultanément — ils sont mutuellement exclusifs.
184+
- `fread()` vous avertira si une colonne que vous avez spécifiée n'existe pas dans le fichier.
186185

187-
For details, see the manual page by running `?fread` in R.
186+
Pour les détails, voir la page du manuel en exécutant `?fread` dans R.
188187

189-
### 1.7 Skip to a Sub-Table’s Header Row Using a Column Name Substring
188+
### 1.7 Sauter à une ligne de l'entête d'une sous-table en utilisant une sous-chaîne d'un nom de colonne
190189

191-
Use `skip="string"` in `fread` to search for a line containing a substring (typically from the column names, e.g., `skip="Date"`). Reading begins at the first matching line. This is useful for skipping metadata or selecting sub-tables in multi-table files. This feature is inspired by the `read.xls` function in the gdata package.
190+
Utilisez `skip="chaîne"` dans `fread` pour chercher une ligne contenant une sous-chaîne (typiquement issue des noms de colonne, par exemple `skip="Date"`). La lecture commence à la première ligne où la correspondance est trouvée. Ceci est utile pour sauter les métadonnées ou pour sélectionner des sous-tables dans les fichiers contenant des tables multiples. Cette fonctionnalité est inspirée de la fonction `read.xls` du paquet gdata .
192191

193192
### 1.8 Automatic Quote Escape Detection (Including No-Escape)
194193

195-
`fread` automatically detects how quotes are escaped—including doubled ("") or backslash-escaped (\") quotes—without requiring user input. This is determined using a large sample of the data (see point 3), and validated against the entire file.
194+
`fread` détecte automatiquement la manière dont les guillemets sont échappés — qu'ils soient simples ('') ou doubles ("") ou échappés avec une barre oblique (respectivement \' et \") — sans nécessiter l'intervention de l'utilisateur. Ceci est déterminé en utilisant un grand échantillon de données (voir le point 3), et vérifié sur le fichier complet.
196195

197-
Supported Scenarios:
198-
- Unescaped quotes inside quoted fields
199-
e.g., `"This "quote" is invalid"`supported as long as column count remains consistent.
196+
Scénari pris en charge :
197+
- Guillemets non échappés dans les champs entre guillemets
198+
par exemple, `"This "quote" is invalid"`est reconnu tant que le nombre de colonnes reste cohérent.
200199

201-
- Unquoted fields that begin with quotes
202-
e.g., `Invalid"Field,10,20`recognized correctly as not a quoted field.
200+
- Champs qui ne sont pas entre guillemets mais qui commencent par des guillemets
201+
par exemple, `Invalid"Field,10,20`est reconnu correctement comme n'étant pas un champ entre guillemets.
203202

204-
Requirements & Limitations:
205-
- Escaping rules and column counts must be consistent throughout the file.
203+
Contraintes et limitations :
204+
- les règles de l'échappement et du nombre des colonnes doivent être cohérentes tout au long du fichier.
206205

207-
- Not supported when `fill=TRUE`in that case, the file must follow RFC4180-compliant quoting/escaping.
206+
- non reconnu lorsque `fill=TRUE`dans ce cas le fichier doit suivre la RFC4180 concernant les guillemets et l'échappement.
208207

209-
Version-Specific Robustness:
210-
From v1.10.6, `fread` resolves ambiguities more reliably across the entire file using full-column-count consistency (default is `fill=FALSE`). Warnings are issued if parsing fails due to ambiguity.
208+
Robustesse selon la version :
209+
A partir de la v1.10.6, `fread` résoud les ambiguïtés de manière plus fiable au travers du fichier entier en utililisant la cohérence du nombre entier de colonnes (valeur par défaut `fill=FALSE`). Les avertissements sont émis si l'analyse échoue par ambiguité.
211210

212211
## 2. fwrite()
213212

214-
`fwrite()` is the fast file writer companion to `fread()`. It’s designed for speed, sensible defaults, and ease of use, mirroring many of the conveniences found in fread`.
213+
`fwrite()` est le pendant de `fread()` pour l'enregistrement rapide. Il est conçu pour être rapide, sensible aux defaults, et facile à utiliser, tout en reprenant la plupart des facilités de `fread`.
215214

216-
### 2.1 Intelligent and Minimalist Quoting (quote="auto")
215+
### 2.1 Guillements intelligents et minimaux (quote="auto")
217216

218-
When data is written as strings (either inherently, like character columns, or by choice, like `dateTimeAs="ISO"`), `quote="auto"` (default) intelligently quotes fields:
217+
Si les données sont écrites comme des chaînes (soit de manière inhérente comme des colonnes de caractères, ou par choix comme `dateTimeAs="ISO"`), `quote="auto"` (valeur par défault) des champs de guillemets intelligents :
219218

220-
**Contextual Quoting**:Fields are quoted only when necessary. This happens if they contain the delimiter `(sep)`, a double quote `(")`, a newline `(\n)`, a carriage return `(\r)`, or if the field is an empty string `("")`. Quoting the empty string is done to distinguish it from an NA value when the file is read.
219+
**Guillemets contextuels** : les champs sont entre guillemets uniquement lorsque cela est nécessaire. Cela se produit s'ils contiennent le délimiteur `(sep)`, un guillemet double `(")`, un passage à la ligne `(\n)`, un retour charriot `(\r)`, ou si le champ est une chaîne vide `("")`. On place une chaîne vide entre guillemets pour la distinguer de la valeur NA quand le fichier est lu.
221220

222-
**Bypassed for Direct Numeric Output**: If specific columns are written as their underlying numeric types (e.g., via `dateTimeAs="epoch"` for `POSIXct`, or if a user pre-converts Date to integer), then quoting logic is naturally bypassed for those numeric fields, contributing to efficiency.
221+
**Ignoré pour la sortie numérique directe** : si les colonnes spécifiques sont écrites comme leur types numériques sous-jascents (par exemple via `dateTimeAs="epoch"` pour `POSIXct`, ou si un utilisateur pré-convertit Date en integer), alors la logique des guillemets est naturellement sautée pour ces champs numériques, ce qui contribue à l'efficacité.
223222

224223
```{r}
225224
dt_quoting_scenario = data.table(
226-
text_field = c("Contains,a,comma", "Contains \"a quote\"", "Clean_text", "", NA),
225+
text_field = c("Contient,une,virgule", "Contient \"des guillemets\"", "Texte neutre", "", NA),
227226
numeric_field = 1:5
228227
)
229228
temp_quote_adv = tempfile(fileext = ".csv")
230229
231230
fwrite(dt_quoting_scenario, temp_quote_adv)
232-
# Note the output: the empty string is quoted (""), but the NA is not.
231+
# Notez la sortie : la chaîne vide est entre guillemets (""), mais la valeur NA ne l'est pas.
233232
cat(readLines(temp_quote_adv), sep = "\n")
234233
```
235234

236-
### 2.2 Fine-Grained Date/Time Serialization (dateTimeAs)
235+
### 2.2 Sérialisation à granularité fine de Date/Time (dateTimeAs)
237236

238-
Offers precise control for POSIXct/Date types:
237+
Permet le contrôle précis pour POSIXct et les types de Date :
239238

240-
- `dateTimeAs="ISO"` (Default for POSIXct): ISO 8601 format (e.g., YYYY-MM-DDTHH:MM:SS.ffffffZ), preserving sub-second precision for unambiguous interchange.
239+
- `dateTimeAs="ISO"` (valeur par défaut pour POSIXct) : format ISO 8601 (c'est à dire AAAA-MM-JJTHH:MM:SS.ffffffZ), ce qui préserve la précision après la virgule pour le portage non ambigu.
241240

242-
- `dateTimeAs="epoch"`: POSIXct as seconds since epoch (numeric).
241+
- `dateTimeAs="epoch"` : POSIXct en secondes depuis epoch (numérique).
243242

244243
```{r}
245244
dt_timestamps = data.table(
@@ -252,11 +251,11 @@ cat(readLines(temp_dt_iso), sep = "\n")
252251
unlink(temp_dt_iso)
253252
```
254253

255-
### 2.3 Handling of bit64::integer64
254+
### 2.3 Gestion de bit64::integer64
256255

257-
**Full Precision for Large Integers**: `fwrite` writes `bit64::integer64` columns by converting them to strings with full precision. This prevents data loss or silent conversion to double that might occur with less specialized writers. This is crucial for IDs or measurements requiring more than R's standard `32-bit` integer range or `53-bit` double precision.
256+
**Précision complète pour les grans entiers** : `fwrite` écrit les colonnes `bit64::integer64` en les convertissant en chaînes de caractères avec la précision complète. Ce qui évite la perte de données ou la conversion silencieuse en double qui pourrait se produire avec des écrivains moins spécialisés. Ceci est crucial pour les IDs ou les mesures qui demandent plus que l'intervalle des entiers `32-bit` du standard R ou de la double précision `53-bit`.
258257

259-
**Direct Handling**: This direct and careful handling of specialized numerics ensures data integrity and efficient I/O, without unnecessary intermediate conversions to less precise types.
258+
**Gestion directeg** : ce traitement direct et soigné des nombres spéciaux assure l'intégrité des données et l'efficacité des entrées / sorties, en évitant les conversions intermédiaires inutiles vers des types moins précis.
260259

261260
```{r}
262261
if (requireNamespace("bit64", quietly = TRUE)) {
@@ -269,28 +268,28 @@ if (requireNamespace("bit64", quietly = TRUE)) {
269268
}
270269
```
271270

272-
### 2.4 Column Order and Subset Control
271+
### 2.4 Ordre des colonnes et contrôle des sous-ensembles
273272

274-
To control the order and subset of columns written to file, subset the data.table before calling `fwrite()`. The `col.names` argument in `fwrite()` is a logical (TRUE/FALSE) that controls whether the header row is written, not which columns are written.
273+
Pour contrôler l'ordre et le sous-ensemble des colonnes écrites dans le fichier, réduisez le data.table avant d'appeler `fwrite()`. L'argument `col.names` de `fwrite()` est un booléen (TRUE/FALSE) qui contrôle si la ligne d'entête est écrite, et non quelles colonnes sont écrites.
275274

276275
```{r}
277276
dt = data.table(A = 1:3, B = 4:6, C = 7:9)
278277
279-
# Write only columns C and A, in that order
278+
# écrire uniquement les colonnes C et A, dans cet ordre
280279
fwrite(dt[, .(C, A)], "out.csv")
281280
cat(readLines("out.csv"), sep = "\n")
282281
file.remove("out.csv")
283282
```
284283

285-
## 3. A Note on Performance
284+
## 3. Note sur les performances
286285

287-
While this vignette focuses on features and usability, the primary motivation for `fread` and `fwrite` is speed. The performance of `data.table`'s I/O is a topic of continuous benchmarking.
286+
Bien que cette vignette se concentre sur les fonctionnalités et sur l'utilisation, le but de `fread` et `fwrite` est la vitesse. Les performances des E/S de `data.table` sont un sujet pour le banc d'essais continu.
288287

289-
For users interested in detailed, up-to-date performance comparisons, we recommend these external blog posts which use the `atime` package for rigorous analysis:
288+
Pour les utilisateurs intéressés par les détails, et les performances comparées mises à jour, nous recommandons ces billets de blog externes, utilisant le paquet `atime` pour une analyse rigoureuse :
290289

291-
- **[data.table asymptotic timings](https://tdhock.github.io/blog/2023/dt-atime-figures/)**: Compares `fread` and `fwrite` performance against other popular R packages like `readr` and `arrow`.
292-
- **[Benchmarking data.table with polars, duckdb, and pandas](https://tdhock.github.io/blog/2024/pandas-dt/)**: Compares `data.table` I/O and grouping performance against leading Python libraries.
290+
- **[data.table asymptotic timings](https://tdhock.github.io/blog/2023/dt-atime-figures/)** : compare les performances de `fread` et `fwrite` par rapport à d'autres paquets populaires de R tels que `readr` et `arrow`.
291+
- **[Benchmarking data.table with polars, duckdb, and pandas](https://tdhock.github.io/blog/2024/pandas-dt/)** : compare les E/S de `data.table` et regroupe les performances face aux bibliothèques principales Python.
293292

294-
These benchmarks consistently show that `fread` and `fwrite` are highly competitive and often state-of-the-art for performance in the R ecosystem.
293+
Ces bancs d'essais montrent d'une manière cohérente que `fread` et `fwrite` sont hautement compétitifs et souvent aux premières places quant aux performances dans l'écosystème R.
295294

296295
***

0 commit comments

Comments
 (0)