[英]How to write a data.frame to a yaml file in certain format in R?
假设我有一个 data.frame:
x<-data.frame(files=c("/a/b/c/p1_fastq.gz", "/a/b/c/p2_fastq.gz"), ids=c("p1", "p2"))
x
files ids
1 /a/b/c/p1_fastq.gz p1
2 /a/b/c/p2_fastq.gz p2
如何将其编写为 yaml 文件test.yaml
,例如:
-
id: "p1"
fastq: "/a/b/c/p1_fastq.gz"
-
id: "p2"
fastq: "/a/b/c/p2_fastq.gz"
我已经在 R 中尝试过yaml
package 但它写为
files:
-/a/b/c/p1_fastq.gz
-/a/b/c/p2_fastq.gz
@akrun 的回答非常适合基础 R。 另一种方法是使用yaml
package 为您做事:
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
另一种方法是行优先(又名“非列优先”),其中每个列表元素代表一行:
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
虽然yaml::as.yaml
推荐第一种方法( column.major=TRUE
,默认值)。
使用您的数据,其中之一
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.