2012-10-11 7 views
5

私はRとggplot2が初めてです。私は飲み物消費データを持つcsvファイルを持っています。最初の列は年、次の9列はコーヒー、紅茶、ソーダなどの飲料タイプで、その行の年の値の消費量の値です。データには41年間の期間が含まれています。私はこれを研究し、多くのことを試みてきました。私はggplotを使って任意の種類の飲料のドットプロットを簡単に作成できます。rとggplot2のcsvデータを再構成

しかし、各プロットのx軸に年を持つ水平積み重ねドットプロットを作成したいとします。だから、コーヒーのプロットがあり、その直下には紅茶などがあります。私はファセットを使いたいと思います。私はまた、私は3つの列があるように私のデータを再構成したいと思っている:1つは、 "カテゴリ"(すなわち、コーヒー、紅茶、ソーダなど)のためのもの、そして最後のもの。私の考えは、その形のデータを取得したら、ファセットを使用することはまっすぐでなければならないということです。

問題は、私はそのフォームで自分のデータを取得する方法を見つけることができないようです。データの最初の数行がどのように表示されるかを次に示します。

Year Whole Milk Other Milk Total Milk Tea Coffee Diet Soda Regular Soda Total Soda Juice 
1970 25.5 5.8 31.3 6.8 33.4 2.1 22.2 24.3 5.5 
1971 25 6.3 31.3 7.2 32.2 2.2 23.3 25.5 5.8 
1972 24.1 6.9 31 7.3 33.6 2.3 23.9 26.2 6 

誰かが私を助けることができますか?データの

dputです:

structure(list(Year = 1970:1972, `Whole Milk` = c(25.5, 25, 24.1 
), `Other Milk` = c(5.8, 6.3, 6.9), `Total Milk` = c(31.3, 31.3, 
31), Tea = c(6.8, 7.2, 7.3), Coffee = c(33.4, 32.2, 33.6), `Diet Soda` = c(2.1, 
2.2, 2.3), `Regular Soda` = c(22.2, 23.3, 23.9), `Total Soda` = c(24.3, 
25.5, 26.2), Juice = c(5.5, 5.8, 6)), .Names = c("Year", "Whole Milk", 
"Other Milk", "Total Milk", "Tea", "Coffee", "Diet Soda", "Regular Soda", 
"Total Soda", "Juice"), class = "data.frame", row.names = c(NA, 
-3L)) 
+0

dputは私には新しいものです。私はちょうどそれを見て、それを使用してみましたが、私はそれを取得していません。私はファイル、例えば、 'myTestFile.csv'を持っています。私は試みました:dput(x、file = 'myTestFile.csv')、そしてエラーメッセージを受け取りました。あなたは手動ですべてのデータを入力していませんでしたか?あなたが何をしたのか、そしてcputファイルでdputをどのように使うのかを理解できますか? – user1739283

+0

変数xがある場合、dput(x)を実行するとxを別の変数に簡単に移すことができます。 Rで試して、構造体をコピー&ペーストしてから 'x < - PASTE'と' str(x) 'を入力してください。 –

答えて

6

「疑問がある場合には、溶融」私は、私はggplot2のために頻繁に使用する少しことわざがあります。再構成パッケージには、関数melt()があります。これはまさにこれを行います。

tmp <- structure(list(Year = 1970:1972, `Whole Milk` = c(25.5, 25, 24.1 
), `Other Milk` = c(5.8, 6.3, 6.9), `Total Milk` = c(31.3, 31.3, 
31), Tea = c(6.8, 7.2, 7.3), Coffee = c(33.4, 32.2, 33.6), `Diet Soda` = c(2.1, 
2.2, 2.3), `Regular Soda` = c(22.2, 23.3, 23.9), `Total Soda` = c(24.3, 
25.5, 26.2), Juice = c(5.5, 5.8, 6)), .Names = c("Year", "Whole Milk", 
"Other Milk", "Total Milk", "Tea", "Coffee", "Diet Soda", "Regular Soda", 
"Total Soda", "Juice"), class = "data.frame", row.names = c(NA, 
-3L)) 

library(reshape) 

melt(tmp, id.vars="Year") 

Year  variable value 
1 1970 Whole Milk 25.5 
2 1971 Whole Milk 25.0 
3 1972 Whole Milk 24.1 
4 1970 Other Milk 5.8 
5 1971 Other Milk 6.3 
6 1972 Other Milk 6.9 
7 1970 Total Milk 31.3 
8 1971 Total Milk 31.3 
9 1972 Total Milk 31.0 
10 1970   Tea 6.8 
11 1971   Tea 7.2 
12 1972   Tea 7.3 
13 1970  Coffee 33.4 
... 
+1

+1は" – SlowLearner

関連する問題