【问题标题】:Get a subset not containing a given value of the column获取不包含给定列值的子集
【发布时间】:2015-03-26 23:34:52
【问题描述】:

我有一张桌子叫data:

A 22
B 333
C Not Av.
D Not Av.

如何获得一个子集,其中所有行都包含“Not Av”。被排除在外?值得一提的是,我有要检查的列的索引(在本例中为 colnum = 2),但我没有它的名称。

我试过了,但它不起作用:

data<-subset(data,colnum!="Not Available")

【问题讨论】:

  • 您是在使用首字母缩略词还是它们真的被称为 Not Av.?
  • @OganM:它们被称为“不可用”。我的意思是这些不是 NA 条目(空=。这些是包含文本“不可用”的条目。

标签: r subset


【解决方案1】:
df <- read.csv(text="A,22
B,333
C,Not Av.
D,Not Av.", header=F)

df[df[,2] != "Not Av.",]

【讨论】:

    【解决方案2】:

    您实际上并不需要subset 函数。只需使用[

    > set.seed(42)
    > DF <- data.frame(x = LETTERS[1:10], 
                       y = sample(c(1, 2, 3, "Not Av."), 10, replace = TRUE))
    > DF
       x       y
    1  A Not Av.
    2  B Not Av.
    3  C       2
    4  D Not Av.
    5  E       3
    6  F       3
    7  G       3
    8  H       1
    9  I       3
    10 J       3
    > DF[DF[2] != "Not Av.",]
       x y
    3  C 2
    5  E 3
    6  F 3
    7  G 3
    8  H 1
    9  I 3
    10 J 3
    

    【讨论】:

      【解决方案3】:

      如果您仍想使用子集功能:

      df<-subset(df,!grepl("Not Av",df[,2]))
      

      【讨论】:

        猜你喜欢
        • 2018-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-24
        • 1970-01-01
        • 1970-01-01
        • 2023-01-28
        相关资源
        最近更新 更多