Как я могу сохранить текст в файл на R?

#r #text #save

#r #текст #Сохранить

Вопрос:

У меня есть функция R, которая может генерировать код LaTeX (на выходе получается код LaTeX) с помощью cat() , в то время как теперь я хочу сохранить этот код LaTeX, но я не знаю, какая функция может сохранить этот код LaTeX…

Комментарии:

1. Вы уверены, что Sweave не поможет?

Ответ №1:

Мне нравится использовать sink() функцию:

 latex.code <- function(){
   cat("\begin{align}n")
   cat("[X'X]^{-1}X'yn")
   cat("\end{align}n")
}
sink(file='ols.txt')
latex.code()
sink()
  

Редактировать: Очевидно, что вы можете выбрать путь к файлу, в котором будет сохранен файл, изменив аргумент приемника, такой как: sink(file='c:/Users/Eva/Desktop/ols.txt') , или sink(file='~/ols.txt')

Ответ №2:

Предполагая, что ваша функция R возвращает символьную строку кода LaTeX (ваш вопрос был бы намного улучшен, если бы вы сделали его более конкретным, приведя несколько конкретных примеров), вы можете вывести что-то подобное в файл, используя функцию cat () и указав файл, используя аргумент file = . Вы можете прочитать об этом через ?cat.

Комментарии:

1. ДА, моя функция R возвращает строку с помощью cat (), но я не знаю, как сохранить этот cat ()…

2. Я пытался, но если cat(@@@@, file=»аргумент»), где сохраняется мой файл??

3. @user471448 вот пример того, как я использую cat на своей машине unix. cat(сумма(1,2), «/Users/ditkin/Desktop/foo.txt «)

4. Следуйте моим советам (и руководству по размещению) и предоставьте минимально воспроизводимый пример (т. Е. Код, который я могу запустить сам), а я постараюсь помочь еще немного.

5. @Eva Все файлы сохраняются, при условии, что не задан абсолютный путь к setwd() .

Ответ №3:

Если случается так, что у вас есть выходные данные в виде символьного вектора (т. Е. вы используете что-то вроде cat(<something>) для его записи на консоль), вы можете использовать writeLines функцию, подобную этой:

 writeLines(<something>,"filename.txt")
  

Однако лучший способ создать LaTeX-файл на R — это использовать Sweave или создать шаблон brew.