首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将"cnv.print“命令从”cnv“包转换为对象?

如何将"cnv.print“命令从”cnv“包转换为对象?
EN

Stack Overflow用户
提问于 2016-01-13 08:33:26
回答 2查看 93关注 0票数 1

这个命令:

代码语言:javascript
复制
cnv.print(data)

在cnv包中准确地打印我需要的并且具有此功能的表:

代码语言:javascript
复制
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)
    }
}

这是印刷品的头版:

代码语言:javascript
复制
> 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
...

问题是,我无法将此“打印”转换为要导出为最终电子表格的对象。我试过这个:

代码语言:javascript
复制
cnv<- cnv.print(data)
library(data.table)    
cnv<- as.data.table (cnv.print(data))

这些命令只再次打印表,cnv对象描述如下:

代码语言:javascript
复制
Null data.table (0 rows and 0 cols)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-13 12:57:31

实际上,cnv.print可以直接打印到文件。

代码语言:javascript
复制
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")
票数 1
EN

Stack Overflow用户

发布于 2016-01-13 11:35:25

谢谢你,帕斯卡,是的,用“水槽”我能解决这个问题。

代码语言:javascript
复制
sink("mydata.txt", append=T, split=T)
sink(cnv.print(data))
data <- fread("mydata.txt", header=T, sep="\t")

问题是,我不得不手动纠正"mydata.txt“的一些行(3行),有时第七列会跳到新行。如果有人为这个文件找到了解决方案,我会很感激你不会破坏这些列。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34761792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档