Создание txt файла из кадра данных с определенным форматом фиксированной ширины - PullRequest
0 голосов
/ 24 мая 2018

У меня есть фрейм данных с именем dfGL с 22 столбцами и 17000 строк!Имена строк: pressure, diameter, roughness ...

Я хочу создать txt-файл из этого фрейма данных так, чтобы:

  • 1-й столбецdfGL начинается с позиции 1 текстового файла (строка 1 столбца 1),
  • 2-й столбец начинается с позиции 25 (строка 1 столбца 25),
  • 3-й столбец начинается с позиции 50 (строка1 столбец 50),
  • и так далее! введите описание изображения здесь

Ответы [ 3 ]

0 голосов
/ 24 мая 2018

Я бы предложил использовать write.fwf из пакета gdata, если вы хотите создать файл с фиксированной шириной.Кажется, что имена столбцов не сохраняются в правильной позиции, поэтому, чтобы обойти это, вы можете отформатировать их в соответствии с шириной столбцов, которую вы хотите использовать 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="")
0 голосов
/ 24 мая 2018

Вот решение, которое работает:

dfGL <- rbind (colnames (dfGL), dfGL) </p>

write.fwf (dfGL, file = paste ("Inpuuuttt", ".txt ", sep =" "), ширина = 25, имена строк = T, имена столбцов = F, цитата = F)

0 голосов
/ 24 мая 2018

Я думаю, что вы пытаетесь получить текстовый файл с разделителями с 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...