我有一个名为dfGL
22 列和 17000 行的数据框!行名称为:pressure
, diameter
, roughness
...
我想从此数据框中创建一个 txt 文件,以便:
- dfGL 的第一列从文本文件的位置 1 开始(第 1 行第 1 列),
- 第 2 列从位置 25 开始(第 1 行第 25 列),
- 第 3 列从位置 50 开始(第 1 行第 50 列),
- 等等! 在此处输入图像描述
我有一个名为dfGL
22 列和 17000 行的数据框!行名称为:pressure
, diameter
, roughness
...
我想从此数据框中创建一个 txt 文件,以便:
如果要创建固定宽度文件,我建议使用包中write.fwf
的。gdata
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="")
我认为您要做的是最终得到一个分隔文本文件,每个相邻变量之间有 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)
这是有效的解决方案:
library(gdata)
dfGL <- rbind(colnames(dfGL) , dfGL)
write.fwf(dfGL, file = "Inpuuuttt.txt",
width = 25,rownames = TRUE, colnames = FALSE, quote = FALSE)