как репрексом воспроизвести фрейм данных в R?

Иногда мне приходится копировать данные из Excel в R. Рабочий процесс выглядит примерно так:

# Step 1: Highlight Excel spreadsheet to be copied into R
# Step 2: Run this command to get the data into R
excelss <- read.delim("clipboard")  # for Windows

Если я print(excelss) получу свой фрейм данных

  Excel.Col.1  Excel.Col.2
1           A           24
2           B            5
3           C           53

Вопрос в следующем: как мне взять этот вывод фрейма данных и навсегда сохранить его в моем скрипте? Какие репрекс-команды я использую? Чтобы в следующий раз, когда я открою сценарий, фрейм данных был прямо там, и мне не нужно было открывать Excel и снова выполнять всю процедуру копирования/вставки?

Или по-другому. Как мне взять вывод фрейма данных консоли и сохранить его в моем редакторе?


person stackinator    schedule 21.11.2018    source источник
comment
Используйте read.table(header = TRUE, sep = "\t", quote = "\"", dec = ".", fill = TRUE, comment.char = "", text="...") т.е. остальные параметры кроме text= устанавливаются как в read.delim() Обычно я использую read.table(header=TRUE, text="...")   -  person jogo    schedule 21.11.2018
comment
Почему нельзя использовать readxl::read_excel()? Копирование/вставка не подходит для воспроизводимых рабочих процессов (и не способствует возможной автоматизации/скриптингу).   -  person hrbrmstr    schedule 21.11.2018
comment
@hrbrmstr для моего случая. Мне нужны данные непосредственно в сценарии, и я не хочу ссылаться на файл Excel, из которого изначально были получены данные, или загружать какие-либо пакеты поверх base-R. Я работаю с конфиденциальными данными, а файл Excel (и упомянутый вами рабочий процесс) вызывает проблемы с безопасностью (если я могу оставить это как есть).   -  person stackinator    schedule 21.11.2018
comment
@jogo, можешь указать это в формате ответа? Я не совсем понимаю, что вы имеете в виду. Является ли text="..." сокращением для скопировать вашу консоль в это пространство? Я пробовал это, но номера строк, напечатанные на консоли, все испортили. Спасибо   -  person stackinator    schedule 21.11.2018


Ответы (2)


Используйте read.table(header = TRUE, sep = "\t", quote = "\"", dec = ".", fill = TRUE, comment.char = "", text="...") т. е. другие параметры, кроме text=, устанавливаются как в read.delim() Обычно я использую read.table(header=TRUE, text="..."), например. для ваших данных:

excelss <- read.table(header=TRUE, text=
"      Excel.Col.1  Excel.Col.2
               A           24
               B            5
               C           53")

or

excelss <- read.table(header=TRUE, text=
"  Excel.Col.1  Excel.Col.2
1           A           24
2           B            5
3           C           53")
excelss
person jogo    schedule 21.11.2018

Мне нравится работать с библиотекой (datapasta). Он добавляет в RStudio надстройку, которая позволяет вставлять табличные данные в качестве определения data.frame (также возможны другие выходные данные, например, вектор). После установки пакета он доступен через выпадающее меню Addins в RStudio.

person ismirsehregal    schedule 21.11.2018