Напишите таблицу с новой строкой вместо NA - PullRequest
2 голосов
/ 11 января 2012

Итак, у меня есть фрейм данных, который я сформировал, комбинируя списки различной длины, расширяя более короткие с NA.

Пример:

           [,1]    [,2]     [,3]  [,4]   [,5]     [,6]   
PAHS.147A  "TNF"   "TRAF6"  NA    NA     NA       NA     
PAHS.122A  "TRAF6" "TRIM25" NA    NA     NA       NA     
PAHS.012A  "TRAF3" "TRAF4"  NA    NA     NA       NA     
PAHS.3012A "CD40"  "CD40LG" "CD5" "CD70" "CDKN1A" "CEBPB"
PAHS.038A  "VEGFA" "VWF"    NA    NA     NA       NA     
PAHS.084A  "ULK2"  "UVRAG"  NA    NA     NA       NA 

Я хочу использовать write.table() для записи таблицы в текстовый файл с разделителями табуляции, но вместо NA я просто хочу начинать новую строку всякий раз, когда строка достигает NA. Есть ли простой способ сделать это?

Я попытался установить NA для "", но у меня все еще были вкладки для указания пропущенных значений. Я просто хотел бы новую строку в этой точке вместо вкладок.

1 Ответ

4 голосов
/ 11 января 2012

Поскольку write.table предназначен для вывода обычных объектов (data.frames и matrices) с каким-либо разделителем, вы, вероятно, получите большее сцепление с одним из cat, write или writeLines:

txt <- data.frame(a="a", b="b", c=NA, d=NA  ,e=NA)
txt <- txt[rep(1,10),]  # 10 copies
apply(txt,1,function(x) cat(x[!is.na(x)], "\n", file="out.txt", append=TRUE ))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...