从具有特定固定宽度格式的数据框创建 txt 文件

Creating txt file from a dataframe with specific fixed-width format

我有一个名为 dfGL 的数据框,它有 22 列和 17000 行! 行名称为:pressurediameterroughness...

我想从这个数据框创建一个 txt 文件,这样:

我认为您想要做的是最终得到一个带分隔符的文本文件,每个相邻变量之间有 24 个空白列。这是一种迂回而笨拙的解决方案。如果你的任何变量中有任何带逗号的字符串,它就会中断,具有在字符串中写入 24 个逗号的烦人质量(你可以用 nchar() 计算它们),并犯下将数据保存到磁盘的罪行然后读回它们。

# Export your data.frame to a csv file
write.csv(YourDataFrame, file="Path/To/File.csv", row.names=FALSE)

# Read in the lines of the file
fileLinesTemp = readLines("Path/To/File.csv")
# Add a bunch of commas to add columns
fileLinesTemp = gsub(",", ",,,,,,,,,,,,,,,,,,,,,,,,", fileLinesTemp)

# Write the new lines back to the file
fileConn = file("Path/To/File.csv")
writeLines(fileLinesTemp, fileConn)
close(fileConn)

如果您想创建固定宽度的文件,我建议使用 gdata 包中的 write.fwf。 col 名称似乎没有保存到正确的位置,因此要解决此问题,您可以将它们格式化为您希望列使用的宽度 formatC.

library(gdata)
colnames(dfGL) <- formatC(colnames(dfGL), width = 25, flag = " ")
write.fwf(dfGL, file = "C:/Users/sara/Desktop/Inputttt.txt", width = rep(25,ncol(dfGL)), sep="")

这是有效的解决方案:

library(gdata)

dfGL <- rbind(colnames(dfGL) , dfGL)
write.fwf(dfGL, file = "Inpuuuttt.txt", 
          width = 25,rownames = TRUE, colnames = FALSE,  quote = FALSE)