Как добавить строку в текстовый файл в конце для расчетов? - PullRequest
0 голосов
/ 13 мая 2019

У меня есть текстовый файл, сгенерированный из служб SSIS, а данные взяты из базы данных SQL Server.В текстовом файле нет заголовков столбцов.В текстовом файле мне нужно посмотреть, есть ли способ добавить строку в самый низ первого столбца только для некоторых вычислений (подсчет и сумма).

Например, текущий текстовый файл выглядит так:

111 Test Street         Texas                John Doe         20.00
123 Test Street         Alabama              John Doe         30.00

Я смотрю, могу ли я заставить его выглядеть так, где он подсчитывает общее количество записей, а также добавляетпоследний столбец:

111 Test Street         Texas                John Doe         20.00
123 Test Street         Alabama              John Doe         30.00
Users: 2   Amount: 50.00

Ответы [ 2 ]

1 голос
/ 15 мая 2019

Мне удалось заставить его работать, мне сначала нужно было использовать write.fwf, потому что мой текстовый файл должен был иметь фиксированную ширину, поэтому я сделал:

write.fwf(data, file = "test.txt", width = c(57,19,2), colnames = FALSE)

Тогда я использовал:

write(paste0("Users:   ", nrow(data),"   Total:    ", sum(data1$amount)), file = "test.txt", append = TRUE)

Я хотел опубликовать это для справки на случай, если кто-нибудь может наткнуться на эту ситуацию.

Еще раз спасибо, Шри!

0 голосов
/ 13 мая 2019

Вот один простой способ в R с iris в качестве примера фиктивных данных. Дайте мне знать, если это соответствует вашим потребностям -

# read your data into a dataframe
df <- iris[1:2, ]
# create this file in your working directory
sink(file = "test.txt", type = "output")
# add dataframe as is to text file
df
# add summary line to data frame
cat(
  paste0("Users: ", unique(df$Species), "     Total: ", sum(df$Sepal.Length)),
  file = 'test.txt', append = T, sep = '\n'
  )
# close connection to text file
sink()

# output text file -

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
Users: setosa     Total: 10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...