Lay*_*yla 6 r double-quotes write.table
我在名为"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
Run Code Online (Sandbox Code Playgroud)
数据由制表符分隔.
现在我想在该表上提取一些列,根据名为"vector.csv"的csv文件的信息,该向量得到以下数据:
18,1,4,20
Run Code Online (Sandbox Code Playgroud)
所以我想结束一个修改过的文件"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
Run Code Online (Sandbox Code Playgroud)
在一些帮助下,我已经制作了以下代码:
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")
Run Code Online (Sandbox Code Playgroud)
我得到的问题是我的结果文件具有以下格式:
"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
Run Code Online (Sandbox Code Playgroud)
我的问题是如何避免出现在我保存的文件中的那些引号""标记,以便数据看起来像我想要的那样.
有帮助吗?
谢谢
mne*_*nel 22
要引用从您的帮助文件write.table
quote
逻辑值(TRUE或FALSE)或数字向量.如果为TRUE,则任何字符或因子列都将被双引号括起来.如果是数字向量,则将其元素作为要引用的列的索引.在这两种情况下,如果写入行和列名称,则引用它们.如果为FALSE,则不引用任何内容.
因此
write.table(df,"datamod.txt",row.names=FALSE,sep="\t", quote = FALSE)
Run Code Online (Sandbox Code Playgroud)
应该很好地工作.
| 归档时间: |
|
| 查看次数: |
16278 次 |
| 最近记录: |