0

観測値が 3 つ未満のデータ フレームの行を削除する方法を探しています。より良い方法で問題を説明させてください。6 つの独立変数と 1 つの従属変数を持つデータフレームがあります。ファセットを使用して密度プロットを行っているため、ggplot2観測値が 3 つ未満の変数は (明らかに) プロットされません。観測が 3 つ未満のこれらの行を削除する方法を探しています。これはデータの例です:

'data.frame':   432 obs. of  6 variables:
$ ID        : Factor w/ 439 levels "1","2","3","4",..: 1 2 3 4 5 6 7 8 9 10 ...
$ Forno     : Factor w/ 8 levels "Micro","Macro",..: 1 1 1 6 6 6 4 4 4 5 ...
$ Varieta: Factor w/ 11 levels "cc","dd",..: 11 11 11 6 6 6 1 1 1 6 ...
$ Impiego: Factor w/ 5 levels "aperto","chiuso",..: 2 2 2 3 3 3 2 2 2 5 ...
$ MediaL    : num  60.7 58.9 60.5 55.9 56.1 ...
$ MediaL.sd : num  4.81 4.79 4.84 5.27 5.64 ...

ggplot コード:

ggplot(d1,aes(MediaL))+geom_density(aes(fill=Varieta),colour=NA,alpha=0.5)+
    scale_fill_brewer(palette="Set1")+facet_grid(Forno~Impiego)+
    theme(axis.text.x=element_text(angle=90,hjust=1))+theme_mio +xlim(45,65)+
    stat_bin(geom="text",aes(y=0,label=..count..),size=2,binwidth=2)

観測が 3 つ未満の相互作用をすべて削除したいと思います。

4

1 に答える 1

1

サンプル データの実際の出力を提供すると便利です。dput(yourObject)提供したテキスト表現の代わりに、これを提供できます。matrixただし、以下の同じ基本的なアプローチは、 、data.frame、およびtableデータ構造でも同様に機能するようです。

#Matrix
x <- matrix(c(5,4,4,3,1,5,1,8,2), ncol = 3, byrow = TRUE)
x[x < 3] <- NA
#----
     [,1] [,2] [,3]
[1,]    5    4    4
[2,]    3   NA    5
[3,]   NA    8   NA

#data.frame
xd <- as.data.frame(matrix(c(5,4,4,3,1,5,1,8,2), ncol = 3, byrow = TRUE))
xd[xd < 3] <- NA
#----
  V1 V2 V3
1  5  4  4
2  3 NA  5
3 NA  8 NA

#Table. Simulate some data first
set.seed(1)
samp <- data.frame(x1 = sample(c("acqua", "fango", "neve"), 20, TRUE),
                   x2 = sample(c("pippo", "pluto", "paperino"), 20, TRUE))
x2 <-table(samp)
x2[x2 < 3] <- NA
#----
       x2
x1      paperino pippo pluto
  acqua                    3
  fango        3            
  neve               3     3

ggplot は通常、データを長い形式にすることを好みます。ほとんどの場合、 のmelt()コマンドを使用して実現されreshape2ます。プロット コードを提供すると、プロットしたくないデータを削除するためのより良い方法が示される場合があります。

于 2012-11-29T15:00:26.347 に答える