Как отформатировать данные в (а) CSV-файлах, чтобы их можно было легко импортировать в R? - PullRequest
2 голосов
/ 20 февраля 2012

Редактировать:

Итак, этот формат будет работать:

featureID    charge    xcoordinate    ycoordinate
1            2         5105.9217      336.125209180674
1            2         5108.7642      336.124751115092
2            0         2434.9217      145.893331325278

Но что, если у меня есть два столбца с несколькими значениями, которые связаны между собой.Скажем, качество столбца связано с машиной и качеством, и столбец выглядит следующим образом:

 MachineQuality
 [[{1:1224}, {2:3453}], [{1:2242}, {2:4142}]

Теперь, если я хочу разделить это, как я сделал с координатами выпуклой оболочки, мне нужно 2 строки вместо 1Но не нужно ли мне 2 строки для каждой строки, которая уже есть (то есть 4, потому что для координат уже есть 2 дополнительных), например:

featureID    charge    xcoordinate    ycoordinate         quality1    quality2
1            2         5105.9217      336.125209180674    1224        3453
1            2         5105.9217      336.125209180674    2242        4142
1            2         5108.7642      336.124751115092    1224        3453
1            2         5108.7642      336.124751115092    2242        4142
[...]

Должно ли это быть так?


Я очень плохо знаком с R, мои знания не идут намного дальше, чем знание того, как создать вектор и несколько простых графиков.Я собираюсь использовать R для проекта стажировки в ближайшие пару месяцев, и в течение этого времени я (надеюсь) изучу некоторые тонкости R. Однако, прежде чем я начну, мне нужно представить данные, которые ясобираюсь делать статистику по.Мне нужно заранее знать, как мне следует форматировать мои выходные CSV-данные, чтобы я мог легко их прочитать, как только я начну свой R-анализ.

Одна вещь, которую меня попросили сделать, - сделать файл CSV из данных, чтобы его можно было прочитать с помощью R. Примеры файлов CSV для импорта с использованием R, которые я видел, выглядят полностьюкак это

featureID    Charge    value
1            2         10
2            0         9

Однако мои данные в основном состоят из столбцов, для которых значения содержат несколько значений.Для пояснения: в качестве примера, у меня есть данные о «особенностях», которые, помимо прочего, имеют «выпуклую оболочку».Этот выпуклый корпус состоит из парных координат x и y.Итак, что я мог бы иметь для данных (только показывая две координаты, может быть много)

featureID    Charge    Convexhull
1            2         [[{'y': '336.125209180674'}, {'x': '5105.9217'}], [{'y': '336.124751115092'}, {'x': '5108.7642'}]]

Можно ли получить это в одном файле CSV, имея возможность правильно прочитать его в R (так, чтобыпарные координаты x и y сохраняются)Если так, то как должен выглядеть файл CSV?Например, я видел примеры файлов CSV с несколькими значениями, которые выглядят следующим образом:

featureID    charge    xcoordinate    ycoordinate
1            2         5105.9217      336.125209180674
                       5108.7642      336.124751115092
2            0         2434.9217      145.893331325278

Но я не могу найти, легко ли это импортируется R.

Если этоне выполнимо в одном файле CSV, легко ли импортировать файлы CSV независимо друг от друга, с идеей первичного ключа, например, связывание базы данных?

Ответы [ 2 ]

2 голосов
/ 20 февраля 2012

длинный против широкой формы .Ваш последний пример известен как длинная форма (за исключением того, что все ячейки должны быть заполнены), а ваш первый пример - приблизительно широкая форма, как обсуждено на странице ?reshape и проиллюстрировано в примерах в конце этой страницы.Вы, вероятно, хотите придерживаться длинной формы.В качестве альтернативы см. Пакет reshape2.

save & load .Обратите внимание, что если вы пишете его только для последующего чтения в R (в отличие от передачи его в какое-либо другое программное обеспечение), вы можете использовать save и load, которые вообще не требуют никаких изменений объекта.,

JSON .Другая возможность, представленная в форме вашего примера, состоит в том, что вы можете посмотреть на пакет rjson .

2 голосов
/ 20 февраля 2012

Единственное, что важно, это то, что у вас есть уникальный символ, разделяющий столбцы данных, и что каждый столбец имеет одинаковую длину. Пока заполнена вторая строка в вашем последнем примере, будет импортироваться штраф.

Вам нужно подумать о том, что вы хотите сделать с данными после того, как они в R, чтобы решить, каким образом вы могли бы заранее захотеть любое другое специальное форматирование. Но если разделитель столбцов является уникальным символом и столбцы имеют одинаковую длину, он будет импортироваться.

(Вы можете нарушить требование уникального разделителя, если ваши записи заключены в кавычки. И если вы хотите по-настоящему поумнеть, вы можете «импортировать» почти все. Но если кто-то просит вас отформатировать данные, то он, вероятно, хочет прямоугольную форму. совместимый с data.frame макет. Возможно, им нужны уникальные значения в каждом столбце (без столбцов точек). Но это между вами и ними.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...