В настоящее время мой рабочий процесс заключается в том, что я делаю статистику и реструктуризацию данных в R и записываю свои документы с использованием Libre Office (LO) Writer. Результаты анализа в R часто являются таблицами, и мне нужно получить их в LO Writer. Я не нашел способ сделать это прямо в простой форме, поэтому то, что я обычно делаю, это: 1) собрать таблицу в R, 2) таблицу экспорта как .csv, 3) открыть .csv в LO Calc, 4) копировать из LO Calc в LO-записи, используя специальную вставку для RTF.Лучшие способы получить таблицы из R в либретто-офис Writer?
При сохранении в .csv, я делаю это, используя write.csv(table_1, "table_1.csv", na = "")
. Это приводит к дополнительному шагу, потому что LO Calc должен знать, как читать CSV-файл. В качестве альтернативы можно получить install one of the packages для вывода в .ods или .xls (x).
Одна из проблем заключается в том, что это часто приводит к очень длинным десятичным числам в файле, например. 2.21931, тогда как обычно требуется только показать 2 или 3 цифры в документе. Я нашел два решения для этой досады.
Первый заключается в округлении чисел в R, используя, например, round(table_1, 2)
, а затем сохраните, используя указанную выше команду. Проблема заключается в том, что когда вы импортируете это в LO Calc, цифры, такие как .60, становятся .6, теряя (избыточную) цифру. Это приводит к несколько противоречивой презентации. Их можно добавить либо в таблицу документа, либо с помощью функций округления в LO Calc.
Во-вторых, использовать функцию округления в Libre Office Calc, но для этого требуется несколько дополнительных работ и больше работы.
Наконец, когда важные таблицы в LO Writer, как это, таблица будет иметь невидимые границы. Каждый из них должен будет добавить их вручную для каждой таблицы.
Каков наилучший способ получить таблицы результатов из R в LO Writer, избегая при этом значительных проблем с цифрами и дополнительных кликов?
Возможно, некоторые ярлыки: я использую (на окнах) 'write.table (dat, 'clipboard', sep = '\ t', row.names = FALSE, header = TRUE)' и просто вставьте его в мою таблицу. Эта сторона - необходимость сохранения и импорта CSV. Что касается значимых цифр, попробовали ли вы что-то вроде 'dat [, num_columns] <- sapply (dat [, num_columns], format, digitits = 3)'? – r2evans
Неплохая идея с буфером обмена. Я попробовал 'format()', но по какой-то причине он меняет тип на символ. Однако я не пробовал его в 'sapply()'. – Deleet
Вы не можете гарантировать, что знаковые цифры будут отображаться после округления без преобразования в строку. В противном случае вам придется полагаться на Calc и/или Writer для обработки значительных цифр. – r2evans