这个命令:
cnv.print(data)在cnv包中准确地打印我需要的并且具有此功能的表:
cnv.print <- function(cnv, file="")
{
cat('cnv', 'chromosome', 'start', 'end', 'size', 'log2', 'p.value', sep="\t", file=file,fill=TRUE, append=TRUE)
for(i in seq(max(min(cnv$cnv),1), max(cnv$cnv)))
{
sub <- subset(cnv, cnv==i)
start <- ceiling(mean(c(min(sub$start), min(sub$position))))
end <- floor(mean(c(max(sub$end), max(sub$position))))
cat(paste('CNVR_',i,sep=''), paste('chr', unique(sub$chromosome), sep=''), start, end, end-start+1, unique(sub$cnv.log2), unique(sub$cnv.p.value), sep="\t", file=file, fill=TRUE, append=TRUE)
}
}这是印刷品的头版:
> cnv<- as.data.table (cnv.print(data))
cnv chromosome start end size log2 p.value
CNVR_1 chrchr14 192633 200377 7745 3.08669 2.852405e-295
CNVR_2 chrchr14 1665929 1673673 7745 1.953198 4.948368e-197
CNVR_3 chrchr14 2587465 2595209 7745 1.10941 1.772911e-89
CNVR_4 chrchr14 5177833 5185577 7745 Inf NA
CNVR_5 chrchr14 8143785 8151529 7745 0.8412138 3.239654e-56
CNVR_6 chrchr14 9779705 9787449 7745 2.501727 2.677463e-252
...问题是,我无法将此“打印”转换为要导出为最终电子表格的对象。我试过这个:
cnv<- cnv.print(data)
library(data.table)
cnv<- as.data.table (cnv.print(data))这些命令只再次打印表,cnv对象描述如下:
Null data.table (0 rows and 0 cols)发布于 2016-01-13 12:57:31
实际上,cnv.print可以直接打印到文件。
cnv.print(data, file="mydata.txt")
# the output of cnv.print to the file mydata.txt is well formatted
# if you want to further process this file in R, you can read it into R
data <- fread("mydata.txt", header=T, sep="\t")发布于 2016-01-13 11:35:25
谢谢你,帕斯卡,是的,用“水槽”我能解决这个问题。
sink("mydata.txt", append=T, split=T)
sink(cnv.print(data))
data <- fread("mydata.txt", header=T, sep="\t")问题是,我不得不手动纠正"mydata.txt“的一些行(3行),有时第七列会跳到新行。如果有人为这个文件找到了解决方案,我会很感激你不会破坏这些列。
https://stackoverflow.com/questions/34761792
复制相似问题