【问题标题】:Avoid quotation marks in column and row names when using write.table [duplicate]使用 write.table 时避免在列名和行名中使用引号 [重复]
【发布时间】:2013-02-13 04:33:37
【问题描述】:

我在一个名为“data.txt”的文件中有以下数据:

pid      1     2     4     15      18       20
1_at   100   200   89    189     299      788
2_at     8    78   33     89      90       99
3_xt   300    45   53    234      89       34
4_dx    49    34   88      8       9       15

数据由制表符分隔。

现在我想在那个表上提取一些列,根据名为“vector.csv”的csv文件的信息,这个向量得到了以下数据:

18,1,4,20

所以我想以一个修改后的文件“datamod.txt”结束,该文件用以下标签分隔:

pid      18       1     4      20
1_at   299     100    89     788
2_at    90       8    33      99
3_xt    89     300    53      34
4_dx     9      49    88      15

在一些帮助下,我编写了以下代码:

fileName="vector.csv"
con=file(fileName,open="r")
controlfile<-readLines(con)
controls<-controlfile[1]
controlins<-controlfile[2]
test<-paste("pid",controlins,sep=",")
test2<-c(strsplit(test,","))
test3<-c(do.call("rbind",test2)) 
df<-read.table("data.txt",header=T,check.names=F)
CC <- sapply(df, class)
CC[!names(CC) %in% test3] <- "NULL"
df <- read.table("data.txt", header=T, colClasses=CC,check.names=F)
df<-df[,test3]
write.table(df,"datamod.txt",row.names=FALSE,sep="\t")

我遇到的问题是生成的文件格式如下:

"pid"      "18"       "1"     "4"      "20"
"1_at"   299         100      89       788
"2_at"    90           8      33        99
"3_xt"    89         300      53        34
"4_dx"     9          49      88        15

我的问题是如何避免出现在我保存的文件中的那些引号“”,以便数据看起来像我想要的那样。

有什么帮助吗?

谢谢

【问题讨论】:

  • 看看quote参数write.table也设置它FALSE

标签: r double-quotes write.table


【解决方案1】:

引用来自write.table的帮助文件

quote

一个逻辑值(TRUE 或 FALSE)或数值向量。如果真实, 任何字符或因子列都将被双引号括起来。 如果是数字向量,则将其元素作为列的索引 去引用。在这两种情况下,如果行名和列名是 书面。如果为 FALSE,则不引用任何内容。

因此

write.table(df,"datamod.txt",row.names=FALSE,sep="\t", quote = FALSE)

应该很好用。

【讨论】:

    猜你喜欢
    • 2014-08-19
    • 1970-01-01
    • 2013-02-05
    • 2017-12-18
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 2020-04-04
    • 1970-01-01
    相关资源
    最近更新 更多