La réponse de @akrun est excellente pour le R de base. Une alternative est d'utiliser le package
yaml
pour effectuer les tâches pour vous:
library(yaml)
yaml <- as.yaml(mtcars[1:3, 1:3])
cat(yaml, "\n")
# mpg:
# - 21.0
# - 21.0
# - 22.8
# cyl:
# - 6.0
# - 6.0
# - 4.0
# disp:
# - 160.0
# - 160.0
# - 108.0
Une alternative est de faire de la manière row-major (aussi appelée "non column major"), où chaque élément de liste représente une ligne:
yaml <- as.yaml(mtcars[1:3, 1:3], column.major = FALSE)
cat(yaml, "\n")
# - mpg: 21.0
# cyl: 6.0
# disp: 160.0
# - mpg: 21.0
# cyl: 6.0
# disp: 160.0
# - mpg: 22.8
# cyl: 4.0
# disp: 108.0
though yaml::as.yaml
recommends the first method (column.major=TRUE
, the default).
Avec vos données, l'une des méthodes suivantes
cat(as.yaml(x), "\n")
# files:
# - /a/b/c/p1_fastq.gz
# - /a/b/c/p2_fastq.gz
# ids:
# - p1
# - p2
cat(as.yaml(x, column.major = FALSE), "\n")
# - files: /a/b/c/p1_fastq.gz
# ids: p1
# - files: /a/b/c/p2_fastq.gz
# ids: p2