0

我有一个大部分空白的数据框,可以使用以下输入读取:

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)

我试过了,但值没有正确对齐:例如,应该在inteadvar7上显示的值。var6此外,虽然 Excel 设法将列读取为单独的,但包含变量名称的标题行被读取为一个长向量。是什么赋予了?

4

2 回答 2

1

使用write.table(df3, file="test.txt", quote = FALSE, sep = "\t", na="", row.names = FALSE)Notesep = "\t"代替na = " \t"和 set na=""

于 2016-01-26T19:13:02.187 回答
0

如果我写:

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

然后它工作。我遵循了 Jilber 的建议,关于使用sep="\t"该选项并为此执行此na操作,否则 NA 会出现在文件中。

于 2016-01-26T19:19:26.380 回答