%20%D0%BF%D0%B5%D1%80%D0%B5%D1%81%D1%82%D0%B0%D0%BB%20%D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B0%D1%82%D1%8C%20%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%83%20LaTeX.png)
У меня есть файл анализа данных Rmarkdown, который я буду использовать для вязания раздела результатов .pdf для моей диссертации. У меня был прекрасный рабочий код таблицы LaTeX, когда я вязал pdf в Rstudio с помощью кнопки вязания этим утром. Однако, похоже, я сломал его. Я постоянно получаю следующую ошибку и вывод: error in as.string(y) : Cannot coerce argument to a string
,Calls: <Anonymous> ... print -> print.xtable -> +.string -> paste -> as.string
Мой фрейм данных class(df)
считывается [1] "data.table" "data.frame"
, и я получаю ошибку после вызова sum_table
моего примера.
Что я пробовал:
- Удаляю по одному мои дополнения к функциям xtable() и print(), возвращаясь к предельно простой форме.
- Выполнение кода построчно, а не как Rmd-куска.
- Добавление аргумента display в xtable()документация xtable
- Удалил и переустановил xtable и R. У меня MacOS 10.12.6 (старый компьютер), R 3.6.3 и Rstudio 1.2.5033.
- добавлен
booktabs=TRUE
аргумент в print()пример xtable
Есть ли у вас какие-нибудь идеи по поводу этой ошибки или способа ее устранения?
Простой пример фрагмента Rmd:
---
output:
pdf_document:
fig_caption: yes
indent: true
---
# Rmd chunk settings
# results = 'asis' to output LaTex code that is recognized as code
{R Summary_Table, echo = FALSE, results = 'asis'}
library(knitr)
library(tinytex)
library(xtable)
options(xtable.timestamp = FALSE)
df <- data.frame(A = c(1:10),
B = c(11:20),
C = c(21:30))
sum_table <- xtable(df)
sum_table # Error thrown here "as.string(y) : Cannot coerce argument to a string"
print.xtable(sum_table)
# try another print function
print(sum_table)
# try adding booktabs argument
print(sum_table, booktabs = TRUE)
#Tried adding display argument to xtable(), extra for xtable's automatic
# number column. Thought maybe num variables couldn't be turned into a string?
sum_table2 <- xtable(df, display = c("s","f","f","f"))
sum_table2