次の形式のcsvファイルとして、Javaプログラムからの出力として配布頻度があります。
push 210
mov 270
jmp 150
cp 190
..so on
私はRにかなり慣れていません。次の画像のように、それをテーブルに入力し、円グラフやヒストグラムとして投影して、ラベルと%の視覚的表現を持たせたいと思います。
私は検索して読んだところ、それが何かに沿っていることを知っています。
myfile <- read.csv("sample.csv", sep="/t");
myfreq <- table(myfile);
pie(myfreq);
hist(myfreq);
知っている table(myfile)
頻度分布を与えるが、それはそれをそのまま使用する代わりに頻度を数える。
回答:
回答№1は2- 例の入力ファイルを使用すると、ロードするときに、指定する必要があります
header=F
ヘッダーがないからです。 - ロードするとき、あなたは必要です
sep="t"
タブ区切りを使用します。 table()
は頻度をカウントしますが、入力データには既に頻度があるため、ここで呼び出す必要はありません。- スライスにパーセンテージでラベルを付けることはできますが、スライスを自分で計算して、
labels
の議論pie()
.
dat <- read.csv("sample.csv", sep="t", header=F, col.names=c("inst","freq") );
dat;
## inst freq
## 1 push 210
## 2 mov 270
## 3 jmp 150
## 4 cp 190
cols <- rainbow(nrow(dat));
pie(dat$freq,labels=paste0(round(dat$freq/sum(dat$freq)*100,2),"%"),col=cols);
legend("bottom",legend=dat$inst,pch="■",ncol=nrow(dat),bty="n",col=cols);