【问题标题】:Deleting rows in a r table with less than 3 observations删除 r 表中少于 3 个观察值的行
【发布时间】:2012-11-29 14:45:14
【问题描述】:

我正在寻找一种方法来删除数据框中少于 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 个观察值的所有交互。

【问题讨论】:

    标签: r


    【解决方案1】:

    提供样本数据的实际输出会很有用。您可以通过 dput(yourObject) 而不是您提供的文本表示来提供此信息。但是,似乎下面的基本方法同样适用于 matrixdata.frametable 数据结构。

    #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 通常喜欢长格式的数据,通常通过reshape2 中的melt() 命令实现。如果您提供您的绘图代码,这可能会说明一种更好的方法来删除您不想绘制的数据。

    【讨论】:

    • 现在你有了 ggplot 脚本。我想从数据框中删除行。
    • 你还没有完全到一个可重现的例子。您需要添加用于制作绘图的数据。详情请看这个问题:stackoverflow.com/questions/5963269/…。我的猜测是,您可能应该能够将 2 和 2 与我上面的内容和您的代码放在一起,如果没有,请返回一个关于您卡在哪里的具体问题。
    猜你喜欢
    • 1970-01-01
    • 2016-10-16
    • 1970-01-01
    • 1970-01-01
    • 2016-07-19
    • 2017-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多