Офицерский пакет в R

Все функции ph_with_ * устарели. Есть ли способ, если я все еще могу использовать старую версию Officer и flextable, которая позволит мне использовать функции ph_with_ *. У меня автоматизированный процесс, и из-за новой версии мне сложно вносить все изменения


person Anshul Jain    schedule 03.07.2020    source источник


Ответы (1)


Это должно быть возможно. Если вам известен конкретный номер версии (вы можете проверить журнал изменений), просто откройте архив, скопируйте URL-адрес своей версии и запустите например:

install.packages("https://cran.r-project.org/src/contrib/Archive/officer/officer_0.1.0.tar.gz",
                 repos = NULL, type = "source")

Или используйте devtools пакет:

devtools::install_version("officer",
                          version = "0.1.0",
                          repos = "http://cran.r-project.org")

То же самое касается пакета flextable с его журналом изменений и Архив CRAN.

Пример

Я пробовал следующее:

devtools::install_version("officer",
                          version = "0.3.2",
                          repos = "http://cran.r-project.org")
devtools::install_version("officer",
                          version = "0.4.4",
                          repos = "http://cran.r-project.org")

И пример с ph_with_flextable_at() из документации работает нормально:

library(officer)
library(flextable)
ft <- flextable(head(mtcars))

doc <- read_pptx()
doc <- add_slide(doc, layout = "Title and Content",
                 master = "Office Theme")
doc <- ph_with_flextable(doc, value = ft, type = "body")
doc <- ph_with_flextable_at(doc, value = ft, left = 4, top = 5)
print(doc, target = "test.pptx")
person Community    schedule 03.07.2020
comment
Спасибо, Петя, за ответ. Я проверил журнал изменений, и изменение с ph_with_ * на ph_with было выполнено после версии 0.3.2. Затем я установил версию 0.3.2, но получаю следующую ошибку - Ошибка: ph_with_flextable_at не работает. Вместо этого используйте «офицер :: ph_with». См. Справку (Несуществующий) Дополнительно: Предупреждающее сообщение: - person Anshul Jain; 03.07.2020
comment
@AnshulJain Привет, Аншул, да, ты прав. Похоже, вам также необходимо установить соответствующую версию flextable, например, 0.5.6 или более раннюю, см. Их динамический журнал изменений и архив. Дай мне знать, если это работает. - person ; 03.07.2020
comment
Привет, Петр, с офицерской версией 0.3.2 и изменяемой версией 0.5.6 я получаю сообщение об ошибке. Не уверен, какие две комбинации версий совместимы - Предупреждение: замена предыдущего import 'zip :: unzip' на 'utils :: unzip' при загрузке 'Officer' Ошибка: объект 'ph_with' не экспортируется 'namespace: Officer' ОШИБКА: ленивый не удалось загрузить пакет 'flextable' - person Anshul Jain; 03.07.2020
comment
@AnshulJain Я попытался установить officer 0.3.2 с flextable 0.4.4 (поскольку они отсутствовали в то же время), и базовые сценарии с ph_with_flextable_at() работают у меня правильно без каких-либо предупреждений или ошибок - я обновил ответ, попробуйте. - person ; 03.07.2020
comment
Спасибо, Петр, комбинации версий, которые вы упомянули в примере, работают нормально. Очень ценю, что уделила этому время. Спасибо! - person Anshul Jain; 07.07.2020
comment
@AnshulJain Вау, отлично, спасибо за отзыв, я рад, что это действительно работает для вас! - person ; 07.07.2020