在R中写入.table创建txt文件,然后读取错误

rdlzhqv9  于 2023-04-03  发布在  其他
关注(0)|答案(1)|浏览(207)

所以我在MethylKit中工作,它有一个需要使用txt文件的功能。
我的数据的原始文件工作完美,但由于一些其他问题,我正在通过创建原始文件的子集进行故障排除。
为此,我使用:

write.table(head(Sample_101, n=100),"shorty_101.txt", col.names = FALSE, 
sep = "\t", row.names = TRUE)

我一开始遇到了R移动列名的问题,上面的一行很好地解决了这个问题。然而,当我试图将txt文件放入file.listshorty对象中,然后将其用于methRead函数时,我得到了这个:

file.listshorty <- list("shorty_101.txt","shorty_102.txt", "shorty_103.txt", 
                    "shorty_104.txt", "shorty_105.txt", "shorty_107.txt")

myobjS = methRead(file.listshorty, sample.id=list("Sample_101_GDM", 
"Sample_102_GDM", "Sample_103_GDM", "Sample_104_nonGDM", 
"Sample_105_nonGDM", "Sample_107_nonGDM"), assembly = "hg19", 
treatment=c(1,1,1,0,0,0), context="CpG", dbtype = "tabix", pipeline = "amp", 
header= TRUE, skip = 0, sep = "\t", resolution = "base", dbdir = getwd(), 
mincov = 10)

Error in data[, 5] * data[, 6] : non-numeric argument to binary operator

然而,当我打开这些由R创建的txt文件,删除添加到其中的无关内容,然后将其读入时,它就工作了...
为了澄清--〉删除了行号列和命名列V1、V2、V3...V7的行。

V1 V2 V3 V4 V5 V6 V7
1
2
3
4
5

我也尝试过:

write.table(head(Sample_101, n=100), "shorty_101.txt", col.names = FALSE, 
sep = "\t", row.names = FALSE)

它给了我同样的错误消息。我假设这是因为第一行需要表示为标题,但不确定如何使用列表函数来实现这一点,或者是否有其他解决方案。
任何帮助都是非常感谢!
谢谢!

nnvyjq4y

nnvyjq4y1#

解决了!你必须通过在write.table函数中添加参数quote = FALSE来取出在txt文件中创建的引号。

write.table(head(Sample_101, n=100), "shorty_101.txt", col.names = FALSE, sep 
= "\t", row.names = FALSE, quote = FALSE)

相关问题