2016-01-26 3 views
0

у меня есть в основном пустой кадр данных, который может быть прочитан с помощью ниже входа:write.table столбцы не выравниваются с пробелами

structure(list(var1 = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L 
), var2 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), var3 = c(NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA), var4 = c(NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA), var5 = c(NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA), var6 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 
    var7 = c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L), var8 = c(NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA), var9 = c(NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA), var10 = c(NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA)), .Names = c("var1", "var2", "var3", 
"var4", "var5", "var6", "var7", "var8", "var9", "var10"), row.names = c(NA, 
10L), class = "data.frame") 

Я хотел бы, чтобы написать это в файл TXT, где он выглядит, как и все отформатирован правильно и может быть легко открыт в Excel (я знаю о write.xlsx и, хотя он решает эту проблему, я хочу, чтобы файл был в формате txt).

write.table(df3, file="test.txt", quote = FALSE, na = " \t", row.names = FALSE) 

Я попытался это, но значения не совпадают должным образом, например, значения, которые должны быть под var7 показать на var6 Intead. Кроме того, в то время как Excel удается читать столбцы как отдельные, строка заголовка, которая содержит имена переменных, считывается как один длинный вектор. Что дает?

ответ

1

Использование write.table(df3, file="test.txt", quote = FALSE, sep = "\t", na="", row.names = FALSE) Учтите, что sep = "\t" используется вместо na = " \t" и устанавливает na="".

+0

Хотя это работает, если я использую это, NA также будут записаны, и я не хочу этого. – vashts85

+0

@ vashts85 просто установите 'na =" "' –

0

Если я пишу:

write.table(df3, file="test.txt", quote = FALSE, sep="\t", row.names = FALSE, na="") 

Затем он работает. Я последовал за советом Джилбера об использовании sep="\t", а также сделал это для опции na, так как иначе NA появятся в файле.