У меня есть кадр данных, где один конкретный столбец имеет набор конкретных значений (скажем, 1, 2, ..., 23). То, что я хотел бы сделать, - это преобразовать из этого макета в тот, где в кадре будут дополнительные 23 (в данном случае) столбцы, каждый из которых представляет одно из значений коэффициента. Данные, приведенные в этих столбцах будет булевы указанием была ли конкретная строка заданного значения коэффициента ... Чтобы показать конкретный пример:Изменить кадр данных для преобразования коэффициентов в столбцы в R
исходного кадра:
ID DATE SECTOR
123 2008-01-01 1
456 2008-01-01 3
789 2008-01-02 5
... <more records with SECTOR values from 1 to 5>
Желаемая формат:
ID DATE SECTOR.1 SECTOR.2 SECTOR.3 SECTOR.4 SECTOR.5
123 2008-01-01 T F F F F
456 2008-01-01 F F T F F
789 2008-01-02 F F F F T
У меня нет проблем делать это в цикле, но я надеялся, что будет лучший способ. До сих пор reshape()
не дал желаемого результата. Помощь будет высоко оценена.
Спасибо. Я должен был подумать о создании столбца значений. Интересно, что метод value column/reshape занимает 1.4 секунды на 9500 строках с 26 уровнями факторов, тогда как использование итеративного подхода (по уровням) занимает всего 0,6 секунды. –
Не обманывайте эти функции: функция 'reshape' сама выполняет итерацию, если вы посмотрите на нее. Но он делает многое кроме того, что добавит к общему времени. Такие вещи, как 'reshape', не предназначены для работы лучше; они там просто облегчают манипуляции с данными. – Shane