如何以制表符分隔的方式写入文件?
How to write to a file in tab delimited manner?
所以我从一个名为 input.bed:
的床文件中得到了这个数据框
V1 V2 V3 V4
1 chr1 11323785 11617177 TF1
2 chr1 12645605 13926923 TF2
3 chr1 14750216 15119039 TF3
4 chr1 18102157 19080189 TF1
5 chr1 29491029 30934636 TF2
6 chr1 33716472 35395979 TF4
7 chr1 36712462 37685238 TF5
8 chr1 37838094 38031209 TF3
这是我从 .bed 文件中读取的数据框(.bed 文件是制表符分隔的)。我想获取每一行并将其输出到不同的文件。说第 1 行我希望它在 input1.bed 中,第 2 行在 input2.bed
这是我的尝试:
for(i in 1:nrow(input.bed))
{
file.create(paste("input",i,".bed",sep=""));
}
for(i in 1:nrow(input.bed))
{
write.table(unlist(input.bed[i,]),paste("input",i,".bed",sep=""),sep="\t");
}
出于某种原因,我的文件输出来自 input1.bed,是:
"V1" "chr1"
"V2" "11323785"
"V3" "11617177"
"V4" "TF1"
但我希望输出像这样用制表符分隔:
chr1 11323785 11617177 TF1
我做错了什么?
您可以按以下方式仅使用一个 for
循环(q
是您的数据框)
for(i in 1:nrow(q)){
write.table(x = q[i,],
file = paste('input',i,'.bed',sep=''),
row.names = F,
col.names = F,
quote = F,
sep = '\t')
}
基本上你的方法是正确的,你只需要通知函数你不想要所有默认行为(即 col/rownames,引号)。
所以我从一个名为 input.bed:
的床文件中得到了这个数据框 V1 V2 V3 V4
1 chr1 11323785 11617177 TF1
2 chr1 12645605 13926923 TF2
3 chr1 14750216 15119039 TF3
4 chr1 18102157 19080189 TF1
5 chr1 29491029 30934636 TF2
6 chr1 33716472 35395979 TF4
7 chr1 36712462 37685238 TF5
8 chr1 37838094 38031209 TF3
这是我从 .bed 文件中读取的数据框(.bed 文件是制表符分隔的)。我想获取每一行并将其输出到不同的文件。说第 1 行我希望它在 input1.bed 中,第 2 行在 input2.bed
这是我的尝试:
for(i in 1:nrow(input.bed))
{
file.create(paste("input",i,".bed",sep=""));
}
for(i in 1:nrow(input.bed))
{
write.table(unlist(input.bed[i,]),paste("input",i,".bed",sep=""),sep="\t");
}
出于某种原因,我的文件输出来自 input1.bed,是:
"V1" "chr1"
"V2" "11323785"
"V3" "11617177"
"V4" "TF1"
但我希望输出像这样用制表符分隔:
chr1 11323785 11617177 TF1
我做错了什么?
您可以按以下方式仅使用一个 for
循环(q
是您的数据框)
for(i in 1:nrow(q)){
write.table(x = q[i,],
file = paste('input',i,'.bed',sep=''),
row.names = F,
col.names = F,
quote = F,
sep = '\t')
}
基本上你的方法是正确的,你只需要通知函数你不想要所有默认行为(即 col/rownames,引号)。