我有一个几乎是空白的数据帧,可以使用下面的输入来读取:
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设法将列作为单独的列读取,但包含变量名称的标题行将作为一个长向量读取。怎么回事?
发布于 2016-01-27 03:13:02
使用write.table(df3, file="test.txt", quote = FALSE, sep = "\t", na="", row.names = FALSE)请注意,使用sep = "\t"而不是na = " \t"并设置na=""。
发布于 2016-01-27 03:19:26
如果我写道:
write.table(df3, file="test.txt", quote = FALSE, sep="\t", row.names = FALSE, na="")然后它就起作用了。我遵循了Jilber关于使用sep="\t"的建议,并对na选项执行了此操作,否则NAs将显示在文件中。
https://stackoverflow.com/questions/35021828
复制相似问题