获取不包含列的给定值的子集

时间:2015-03-26 23:34:52

标签: r subset

我有一个名为data的表格:

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

我如何获得一个子集,其中所有行包含" Not Av。"被排除在外?重要的是要提一下我要检查的列索引(在这种情况下colnum = 2),但我没有名字。

我试过这个,但它不起作用:

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

3 个答案:

答案 0 :(得分:1)

您并不真正需要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

答案 1 :(得分:1)

df <- read.csv(text="A,22
B,333
C,Not Av.
D,Not Av.", header=F)

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

答案 2 :(得分:0)

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

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