Допустим, у вас есть эти данные в R, и вы хотите опубликовать вопрос о stackoverflow. Чтобы другие могли вам лучше всего помочь, было бы неплохо, если бы у них была копия вашего объекта (фрейм данных, вектор и т. Д.) Для работы.

Допустим, ваши данные находятся во фрейме данных с именем site.data.

> site.data
    site year     peak
1  ALBEN    5 101529.6
2  ALBEN   10 117483.4
3  ALBEN   20 132960.9
8  ALDER    5   6561.3
9  ALDER   10   7897.1
10 ALDER   20   9208.1
15 AMERI    5  43656.5
16 AMERI   10  51475.3
17 AMERI   20  58854.4

Как вы упаковываете его, чтобы пользователи могли воссоздать данные в точности так, как они есть у вас?

Вы хотите сделать это, не заставляя людей загружать текстовый файл и импортировать его.

(Примечание: эти данные взяты из примера блога REvolutions)

13
Dan Goldstein 12 Авг 2009 в 13:22
Очень умно ввести это сюда.
 – 
JD Long
12 Авг 2009 в 22:32

3 ответа

Лучший ответ

Команда dput записывает представление ASCII. Если вместо имени файла вы поставите "", он запишет его в консоль.

> dput(site.data,"")
structure(list(site = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 
3L, 3L), .Label = c("ALBEN", "ALDER", "AMERI"), class = "factor"), 
    year = c(5L, 10L, 20L, 5L, 10L, 20L, 5L, 10L, 20L), peak = c(101529.6, 
    117483.4, 132960.9, 6561.3, 7897.1, 9208.1, 43656.5, 51475.3, 
    58854.4)), .Names = c("site", "year", "peak"), row.names = c(1L, 
2L, 3L, 8L, 9L, 10L, 15L, 16L, 17L), class = "data.frame")

Просто скопируйте структуру и поместите ее после "site.data =" в вашем примере кода, и люди смогут воссоздать фрейм данных точно в том виде, в каком он у вас есть.

20
Dan Goldstein 12 Авг 2009 в 18:59

Другой способ, похожий на способ Кена, - использовать буфер обмена (в Windows и, возможно, в Linux). Я бы скопировал ваш код и запустил

> site.data <- read.table("clipboard", header=T)
> site.data
    site year     peak
1  ALBEN    5 101529.6
2  ALBEN   10 117483.4
3  ALBEN   20 132960.9
8  ALDER    5   6561.3
9  ALDER   10   7897.1
10 ALDER   20   9208.1
15 AMERI    5  43656.5
16 AMERI   10  51475.3
17 AMERI   20  58854.4
3
Roman Luštrik 12 Авг 2010 в 13:30

На самом деле, в вашем исходном примере способ, которым вы вставили данные в формате столбца, отлично работает. Я просто скопировал ваш текст с веб-страницы и сделал это (используя OS X, поэтому у меня есть хорошая команда «вставить»):

> site.data <- read.table(pipe("pbpaste"))

Для данных игрушек, таких как что-то опубликованное в качестве тестового примера, это часто лучший подход. Если быть более точным, dput () - это хорошо, как говорит dggoldst.

6
Ken Williams 12 Авг 2009 в 20:40