У меня есть большой data.frame, отображающий некоторые странные свойства при нанесении на график. Я хотел бы задать вопрос об этом в Stackoverflow, для этого я хотел бы записать data.frame в форме, которую я могу вставить в SO, и кто-то другой может легко запустить его и вернуть обратно в data.frame снова. Есть ли простой способ добиться этого? Кроме того, если он действительно длинный, следует ли мне использовать контейнер для вставки вместо того, чтобы вставлять его прямо здесь?
R: Как записать data.frame, чтобы я мог вставить его в SO, чтобы другие могли прочитать?
Ответы (4)
Чтобы напрямую ответить на ваш вопрос, проще всего было бы использовать summary()
или head()
для отображения информации о фрейме данных. Я бы посоветовал не вставлять фактические данные в вопрос SO, а предоставить общедоступную ссылку на данные, чтобы сообщество могло поиграть с ними. Если вы этого не видели, служба box.net предоставляет много свободного места для совместной работы в Интернете.
Наконец, если данные демонстрируют странное поведение при построении графиков, почему бы не предоставить код, который вы используете для построения графиков, и несколько примеров самих графиков.
Во-первых, идеи Дрю очень хороши.
Вдобавок, если вы уменьшите объем данных и выделите «странную» часть, используйте dput()
. Это самый простой способ позволить другим загрузить его. Хотя сначала вам нужно сократить объем данных до разумного.
В противном случае опубликуйте его как файл CSV в месте, доступном через HTTP, и люди смогут читать его напрямую с помощью read.csv
. Хотя неразумно просить людей помочь вам с очень большим набором данных.
Наконец, посмотрите ответы на этот вопрос: Как загрузить примеры наборов данных в R?
Это отличный вопрос.
Вот моя попытка ответа - в виде рекомендаций, как лучше задавать вопросы без представления данных, сопровождающих вопрос. Я, вероятно, нарушил каждое из приведенных ниже предложений, но, по крайней мере, мне есть на что ссылаться в будущем, и, возможно, это полезно и для других.
Во-первых, я подозреваю, что любой, кто задает вопрос, предпочитает ответ
с достаточной абстракцией, чтобы в будущем они могли решать общий класс проблем, к которому принадлежит текущая проблема; и
с достаточным практическим руководством (обычно это означает реальный код R), чтобы решить проблему, которая стоит перед нами.
Опять же: абстракция в вашем вопросе (обычно) приводит к абстракции в ответе, что означает более полезный ответ, но также увеличивает вероятность того, что вы действительно получите приемлемый ответ - маловероятно, что сообщество видело этот точный набор данных раньше. ; гораздо более вероятно, что кто-то здесь распознает образец. Но закономерность может быть скрыта из-за слишком большого количества данных.
Во-вторых, количество данных, необходимых для адекватного объяснения вопроса, на самом деле не имеет значения - важно то, сколько времени потребуется людям, пытающимся ответить на вопрос, чтобы получить эти данные в своей среде R. В базовом распределении R представлены наборы данных, состоящие из 50 000 строк - не имеет значения, потому что я могу получить данные в R за несколько нажатий клавиш. Более того, если вы можете обратиться к одному из этих наборов данных, вам не придется вырезать и вставлять что-то внутри окна вопроса. Напротив, я действительно стараюсь не заставлять людей очищать даже несколько строк данных со страницы SO, чтобы они могли правильно понять мой вопрос (кроме Дирка, он производит вычисления в своей голове).
В-третьих, вырезать и вставить всю ширину набора данных в вопросе (всех столбцов), если это не является абсолютно необходимым, просто лениво. Данные редко заменяют краткое описание проблемы. Я бы предпочел, чтобы ОП потратили минуту или две и урезали свой фактический набор данных, чтобы они не предоставляли больше данных, чем на самом деле требуется для иллюстрации вопроса.
В-четвертых, если данные могут быть "предоставлены" с помощью формулы или алгоритма, просто укажите это. Например, если вопрос относится к случайному блужданию, нам не нужны данные, просто скажите «случайное блуждание», и почти каждый здесь сможет сгенерировать данные в короткой строке кода.
dump
хорошо работает, когда фрейм данных не очень большой.