2015-04-27 21 views
-3

可以说,我有一个数据组这样ř滤波列具有相等值

`v6 v7 v8 v9 
x 123 123 x 
x 123 456 x 
x 789 789 x 
x 123 789 x ` 

我怎么过滤,以便只在其中用于列7和8的值是彼此相等的行是退出,继续仍然过滤后保留列标题?我试过这段代码:

hg19 -> hg19[which(hg19$V7 == hg19$V8),]

和验证码:

non_coding= subset(hg19,hg19[8] == hg19[7]) 

其中hg19是数据集。 note:真实数据集有超过99,000行和16列

+0

与之相匹配的列名。 'hg19 [hg19 $ v7 == hg19 $ v8,]'。你正在使用'V7'和'V8'而不是'v7'和'v8'。在第二个代码中,它是对第8列和第7列进行子集化,因为它只有4列数据集。 – akrun

+0

[根据R中的相等列值过滤行]( http://stackoverflow.com/questions/29902891/filtering-rows-based-on-equal-column-values-in-r) – nrussell

+0

我编辑了原始文章,但真正的数据集有超过99,000行和16这两个代码都做了我所要求的内容,但是他们没有保留列标题,这会使得数据很难在以后使用 –

回答

-1

给予您的代码正常工作并保留原始列名称。

hg19[which(hg19$v7==hg19$v8),] 
    v6 v7 v8 v9 
1 x 123 123 x 
3 x 789 789 x 
0
non_coding <- subset(hg19, hg19$v7 == hg19$v8)