Я написал следующий код для перенаправления вывода консоли в текстовый файл. Вывод всех трех команд (dim, str, summary) появляется в текстовом файле, когда я запускаю код в интерактивном режиме. Однако, когда я помещаю код в функцию и интерактивно выполняю вызов функции, появляется только команда str outuput. Это может быть проблема с буферизацией. Какие-либо предложения?
Операционная система: OS X 10.9.5 (Mavericks); R 3.1.1 GUI 1.65 Сборка Mavericks (6784)
Этот код работает ...
con <- file("FileInfoLog.txt")
sink(con, append=TRUE)
sink(con, append=TRUE, type="message")
writeLines("\n\n\n===============================================================\n")
writeLines("Dimensions are ")
dim(db)
writeLines("\n\n\n===============================================================\n")
writeLines("Structure is ")
str(db)
writeLines("\n\n\n===============================================================\n")
writeLines("Summary is ")
summary(db)
# Restore output to console
sink(type="message")
sink()
Этот код не работает надежно ... в текстовом файле отображается только вывод str ().
getFileInfo <- function(db) {
con <- file("FileInfoLog.txt")
sink(con, append=TRUE)
sink(con, append=TRUE, type="message")
writeLines("\n\n\n===============================================================\n")
writeLines("Dimensions are ")
dim(db)
writeLines("\n\n\n===============================================================\n")
writeLines("Structure is ")
str(db)
writeLines("\n\n\n===============================================================\n")
writeLines("Summary is ")
summary(db)
# Restore output to console
sink(type="message")
sink()
}
FileInfoLog.txt из кода, который работает ...
===============================================================
Размеры [1] 28947 17
===============================================================
Структура - data.frame: 28947 набл. из 17 переменных: $ store: int 2 2 2 2 2 2 2 2 2 2 ... $ brand: множитель с 3 уровнями "dominicks", "minute.maid", ..: 3 3 3 3 3 3 3 3 3 3 ... $ week: int 40 46 47 48 50 51 52 53 54 57 ... $ logmove: num 9.02 8.72 8.25 8.99 9.09 ... [...]
===============================================================
Резюме: торговая марка недели цена logmove feat AGE60
Мин. : 2,00 доминикс: 9649 мин. : 40,0 мин. : 4.159 Мин. : 0,0000 мин. : 0,520 мин. : 0,05805
1-й квартал: 53,00 мин. Горничная: 9649 1-й квартал: 70.0 1-й квартал: 8.490 1-й квартал:0.0000 1-й квартал: 1,790 1-й квартал:0.12210
Медиана: 86,00 тропикана: 9649 Медиана : 101,0 Медиана: 9,034 Медиана: 0,0000 Медиана: 2,170 Медиана: 0,17065 Среднее значение: 80,88 Среднее значение: 100,5 Среднее значение: 9,168 Среднее значение: 0,2373 Среднее значение: 2,282 Среднее значение: 0,17313 для 3-го квартала: 111,00 3-го кв.: 130,0 3-го кв. .: 9.765 3-е кв .:0.0000 3-е кв.: 2.730 3-е кв .:0.21395
Макс. : 137.00 Макс. : 160,0 Макс. : 13,482 Макс. : 1,0000 Макс. : 3,870 Макс. : 0.30740
[...]
FileInfoLog.txt из кода, который не работает надежно ...
===============================================================
Размеры указаны
===============================================================
Структура - data.frame: 28947 набл. из 17 переменных: $ store: int 2 2 2 2 2 2 2 2 2 2 ... $ brand: множитель с 3 уровнями "dominicks", "minute.maid", ..: 3 3 3 3 3 3 3 3 3 3 ... $ week: int 40 46 47 48 50 51 52 53 54 57 ... $ logmove: num 9.02 8.72 8.25 8.99 9.09 ... [...]
===============================================================
Резюме