Вывод консоли приемника в файл .txt из функции

Мне нужно заполнить файл .txt при запуске кода с вложенными функциями. Я использую sink() для этой цели. Вывод состоит из а) текстовых сообщений, б) строк данных. Мне не удается распечатать кадры данных из вложенной функции:

sink("log.txt")

cat("Some message")          # Successfully prints to log.txt
head(some_df)                # Successfully prints to log.txt

some_fun = function(x){
    # ...
    cat("Another message")   # Successfully prints to log.txt
    head(another_df)         # Nothing gets printed to log.txt
    # check that another_df is not empty:
    cat(nrow(another_df))    # Successfully prints to log.txt (>0) 
    # ...
}
some_fun(x=0)

sink()

Так как же правильно это сделать?


person Dmitry D. Onishchenko    schedule 26.12.2019    source источник
comment
Оберните print вокруг head вот так: print(head(another_df)) . Тогда должно работать..   -  person sm925    schedule 26.12.2019
comment
И включите "\n" в качестве последней строки в каждый cat().   -  person Rui Barradas    schedule 26.12.2019
comment
Большое спасибо @samadhi. Я был идиотом и пробовал гораздо более сложные комбинации cat() и print().   -  person Dmitry D. Onishchenko    schedule 26.12.2019
comment
Я рад, что смог помочь.   -  person sm925    schedule 26.12.2019


Ответы (1)


Оберните print вокруг head внутри вашей функции. Так:

print(head(another_df))
person sm925    schedule 26.12.2019