所以我有一个来自bed文件的数据框,叫做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文件是制表符分隔的)。我想将每一行输出到不同的文件中。比如说,我想让第一行在input1.bed中,第二行在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
我做错了什么?
unlist()
。并且在你的write.table()
中可能加入quote=FALSE
和row.names=FALSE
。 - MrFlickwrite.table
会自动创建它们。 - anotherfred