Нужно ли переформатировать эти широкие данные для эффективного использования ggplot2?

У меня есть data.frame, который выглядит как

  Year Crustaceans       Cod       Tuna    Herring Scorpion.fishes
1 1950    58578630   2716706   69690537   87161396        15250015
2 1951    59194582   3861166   34829755   51215349        15454659
3 1952    47562941   4396174   31061481   13962479        12541484
4 1953    68432658   3901176   23225423   13229061         9524564
5 1954    64395489   4412721   20798126   25285539         9890656
6 1955    76111004   4774045   13992697   18910756         8446391

С несколькими другими видами (столбцами) и годами с 1950 по 2006 год. Я хотел бы изучить его с помощью ggplot2 (который я только что изучал). Нужно ли мне преобразовывать эти данные, чтобы вид был фактором для эффективного использования ggplot2 по этим данным? Если нет, как мне избежать создания слоя для каждого вида отдельно? Если да, (или действительно в любом случае), быстрый указатель на использование reshape или plyr, чтобы превратить имена столбцов в фактор, будет очень оценен.

Ответ 1

Простое преобразование с использованием melt (из пакета reshape/2) было бы достаточно. Я бы сделал

library(reshape2)
qplot(Year, value, colour = variable, data = melt(df, 'Year'), geom = 'line')

Ответ 2

Я нашел следующую ссылку очень полезной для обучения перестройке. Reshape и plyr очень просты в использовании, если у вас есть формат (не обязательно самый быстрый (пакет data.table написан с использованием некоторого C, так что он намного быстрее) того, как они работают. Этот учебник pdf - отличный ресурс для его изучения Я также предлагаю копировать строку из примера (cast) в script и запускать их по одному, чтобы увидеть результат.

http://had.co.nz/stat405/lectures/19-tables.pdf