Как запретить R изменять символ «-» на «.» символ при записи в файл? - PullRequest
0 голосов
/ 01 декабря 2010

Я хочу записать результаты таблицы в файл, а имена моих столбцов содержат символ «-», но когда я записываю его в файл, он заменяет все «-» на «.».

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 Ответ

2 голосов
/ 01 декабря 2010

Требуется особая забота, чтобы создать такую ​​сущность. Но тогда вы можете использовать аргумент 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 =, если вы хотите добавлять последовательные фрагменты в массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...