2016-01-11 6 views
0

Я использую write.table для вывода матрицы как .txt-файла. Я пытаюсь добавить пустой столбец для имен ролей И добавить имена столбцов впоследствии с аргументом col.names. Я видел много ответов на то, как делать то или другое, но никто не показывает, как это сделать. (После этого легко установить вручную, но если другие смогут понять мой сценарий (длина около 1500 строк и написана для научной публикации), я бы очень хотел, чтобы все это содержалось в R код).добавление пустого поля И имена столбцов в write.table

Я знаю, что добавлено пустое имя столбца, если col.names = NA и row.names = TRUE. Тем не менее, я хотел бы использовать аргумент col.names как этот

write.table(x,"~/Desktop/Folder/myfile_x.txt",sep="\t", 
row.names=TRUE,col.names=c("\",\"Name1","Name2","Name3",....) 

Это дает мне выход, как этот

\,\"Name1" Name2 Name3... 
rowname1 0 0 
rowname2 3 2 
rowname3 3 7 

, где я хотел бы

[BLANK] Name1 Name2...  
rowname1 0 0 
rowname2 3 2 
rowname3 3 7 

где первое имя столбца (для имен/номеров розеток) - пустое поле.

Я знаю, что могу попробовать обходной путь с помощью paste(), но если это возможно с col.names, было бы намного проще. Заранее спасибо!

+0

Если вы просто используете 'col.names = c (« Name1 »,« Name2 »,« Name3 »)', в то время как в текстовом файле отображается имя1 по именам строк, когда вы его читаете, вы увидите, что Name1 на самом деле имя первого столбца и столбец с именами ростов не имеют имени. Это просто индекс. – ytk

+0

Teja также является правильным решением, однако проблема заключается в том, что перед именами в выходном файле не будет «\ t». Другими словами, открыв файл в электронной таблице или, скажем, Excel, вам придется (как вы упомянули выше) вставить ячейку, чтобы сдвинуть имена столбцов на одну ячейку справа. – AlexT

ответ

0

Пожалуйста, помогите мне лучше понять ваш вопрос, если ниже не имеет значения или не помогает. Я думаю, что вы просто хотите иметь rownames как столбец, который имеет «» ColName так сказать .. И в этом случае вам не нужны row.names в write.table:

library(dplyr) 
data("mtcars") 
cbind(rownames(mtcars), mtcars) -> mtcars.nm 
colnames(mtcars.nm)<-c("", colnames(mtcars)) 
mtcars.nm %>% 
    write.table(x=., file="tmp.txt", sep="\t", quote=FALSE, row.names=FALSE) 
Смежные вопросы