如何禁用R将“ - ”字符更改为“。”写入文件时的字符?

时间:2010-12-01 01:51:21

标签: r

我想将表的结果写入文件,我的列的名称包含' - '字符,但是当我将其写入文件时,它将所有' - '替换为'。'。

function(Result,Path)
{
  Num<-0
  for(i in 1:length(Result[,1]))
  {

    if(length(which([Result[i,]>0))>0)
    {
       temp<-which(Result[i,]>0)]
       val<-paste(names(temp),sep="\n")
       write(val,file=paste(Path,"/Result",Num,".txt",sep=""))
       Num<-Num+1
     }
  }
}

有人知道如何禁用此选项吗?

我的列名是蛋白质的名称,其中一些是以这种方式编写的YER060W-A

提前谢谢。

1 个答案:

答案 0 :(得分:2)

制作这样的实体需要特别小心。但是,您可以使用col.names参数并为其指定colnames(dfrm)。

> tst <- data.frame(`a-b`= letters[1:10], `1-2`=1:10, check.names=FALSE)
> colnames(tst)
[1] "a-b" "1-2"
> write.table(tst, file="tst.txt", col.names=colnames(tst) )

粘贴我的编辑:

"a-b" "1-2"
"1" "a" 1
"2" "b" 2  snipped the rest...

write.table没有成功?我看到write()与write.table没有相同的选项。让我们创建一个数组(而不是数据帧),其中昏暗的名字有“ - ”的:

DCtest <- array(1:27, c(3,3,3))
dimnames(DCtest) <- list(dim1 =c(a="a-b",b="b-c",c="c%d"), 
                         dim2=letters[4:6], 
                         dim3= letters[7:9])

获得输出的一种快捷方法就是capture.output():

capture.output(DCtest, file="testm.txt")

testm.txt现在在编辑器中看起来像这样:

, , dim3 = g

     dim2
dim1  d e f
  a-b 1 4 7
  b-c 2 5 8
  c%d 3 6 9

, , dim3 = h

     dim2
dim1   d  e  f
  a-b 10 13 16
  b-c 11 14 17
  c%d 12 15 18

, , dim3 = i

     dim2
dim1   d  e  f
  a-b 19 22 25
  b-c 20 23 26
  c%d 21 24 27

如果你想在数组中附加连续的切片,你也不应该忘记捕获输出有一个append =参数。