我使用R从文件中选择前2列,并使用函数“table”从中创建矩阵,然后将其打印到文件中。问题是标题向左移动了1个单元格。
输入文件是:
ExoT ID3 99.64 1374 5 0 1 1374 15428 16801 0.0 2510
ExoT ID2 99.64 1374 5 0 1 1374 11168 12541 0.0 2510
ExoT ID1 99.64 1374 5 0 1 1374 11942 13315 0.0 2510
ExoU ID3 100.00 2064 0 0 1 2064 1144684 1146747 0.0 3812
ExoU ID2 100.00 2064 0 0 1 2064 1245564 1247627 0.0 3812
ExoU ID1 100.00 2064 0 0 1 2064 1156352 1158415 0.0 3812
ExoS ID1 100.00 2064 0 0 1 2064 1156352 1158415 0.0 3812
所需的输出是:
ID1 ID2 ID3
ExoS 1 0 0
ExoT 1 1 1
ExoU 1 1 1
实际输出是:
ID1 ID2 ID3
ExoS 1 0 0
ExoT 1 1 1
ExoU 1 1 1
似乎在开始时缺少一个tabb!
我的代码是:
args <- commandArgs(TRUE)
blast_file <- read.table(args[1])
selected <- subset(blast_file, select = c(V1, V2))
table (selected)
final <- table (selected)
write.table(final,file=args[2],sep="\t")
任何想法?
答案 0 :(得分:1)
要保留row.names
和col.names
并首先使用标签,您可以分两步导出文件:
首先:
write.table(c("",colnames(final)),file=args[2],sep="\t")
然后:
write.table(final,file=args[2],sep="\t",col.names=F,append=T,row.names=T)