2013-02-13 367 views
3

我有一个名为“data.txt中”文件中的以下数据:如何摆脱R语言中列和行标签中的引号?

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 

的数据由制表符分隔。

现在我想提取表上的一些列的基础上,csv文件名为“vector.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 

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

任何帮助?

由于

+2

查看'write.table'的'quote'参数是否设置为'FALSE' – mnel 2013-02-13 04:39:32

回答

12

报价从帮助文件write.table

quote

逻辑值(TRUE或FALSE)或数字向量。如果为TRUE,则 任何字符或因子列将被双引号包围。 如果使用数字向量,则将其元素作为引用列 的索引。在这两种情况下,行和列的名称都被引用(如果它们是 )。如果FALSE,则不会引用任何内容。

因此

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

应该很好地工作。