2017-10-03 19 views
0

その値の合計(この場合は列値)に基づいてテーブル出力をフィルタ処理したいとします。それから、特定の合計よりも高い値の棒グラフを作成したいと思います。列合計に基づいてテーブル出力をフィルタリングする

コード:

counts <- table(mtcars$vs, mtcars$gear) 
counts 
#output 
#x 3 4 5 
#0 12 2 4 
#1 3 10 1 

#I want to create a barplot for those with column sums > 12 ie. gears 3 and 4. 

#pseudo-code 
#barplot(counts[colSums>12]? 

私の予想出力は、それがRであることを行うにはどのようにギア3と4のためにのみ2列にbarplot表示されるということですか?

PS:私は、その後、2列でbarplotを作成するために、別のtable(mtcars$vs, mtcars$gear)を作成総和> 12を有するものをサブセット、すべての車(table(mtcars$gear))のための歯車の数を見つける作成することができますが、実行する任意の即時の方法がある場合、私は探していますそれ。

+1

あなたの擬似コードでかなり近いあたりとして: 'barplot(カウント[、colSums( counts)> = 12] '。 – lmo

+0

ありがとうございます。ちょっと私が探していたものです。私はRのドキュメントでサブセットテーブルについて何も見つかりませんでした。私は 'table [、filtering-criteria]'を行うことができないことを知りませんでした。 Rのテーブルのために私が読むことができる以上のドキュメント? – addicted

+0

多かれ少なかれ、すべてのRオブジェクトは '['でサブセット化することができますが、もっと難解なオブジェクトや複雑なオブジェクトではいくつかの例外があります。表形式のオブジェクト(matrix、table、およびdata.frame、おそらく他のもの)は '[、]'と単純な拡張子の配列でサブセット化できます。疑いがあるときは、試してみてください。私は、 '?table'のヒントはValueセクションにあり、関数が配列を返すと言います。サブセットと抽出については、 '?['を参照してください。 – lmo

答えて

1

一つggplot2ソリューション、

# install.packages(c("ggplot2"), dependencies = TRUE) 
library(ggplot2) 
g <- ggplot(subset(mtcars, gear <= 4), aes(factor(vs))) 
g + geom_bar(aes(fill = factor(gear))) 

gear 3 and 4 ggplot2

それともlmo's comment,

counts <- with(mtcars, table(vs, gear)) 
counts 

barplot(counts[,colSums(counts) >= 12]) 

plot

+0

お二人のおかげです。どちらも本当に私が探している答えです。私はImoの答えが好きだと思っていましたが、Ericの答えはggplotを使って別の見方をしてくれました。 – addicted

関連する問題