过滤数据框中的多个列

时间:2015-03-07 22:41:31

标签: r

我有一个包含1行和多列的数据框(136)。 该行可以有3个可能的值(1,2,3)。 我想只过滤值为3的列。

我试过这个

data[data[1,]==3,]

但它返回一个奇怪的矩阵

     INEP4 KEPL3 TRPL4 EZTC3 MYPK3 VLID3 MILS3 CGAS5 SMTO3 GOLL4
NA       NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
NA.1     NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
NA.2     NA    NA    NA    NA    NA    NA    NA    NA    NA    NA

2 个答案:

答案 0 :(得分:1)

我想你想要对"数据"的列进行子集化。有' 3'在第一排。在那种情况下,

 data[,data[1,]==3]
 #   V3 V6 V8 V9 V13 V14 V16
 #1  3  3  3  3   3   3   3

数据

set.seed(24)
data <- as.data.frame(matrix(sample(1:3, 20*1, replace=TRUE), ncol=20))

答案 1 :(得分:0)

不是我见过的最明确的问题描述,但也许:

 data[ , grep("3", names(data))]  #any column name with a  "3" in it

也可能是你想要的:

data[ data[[1]]==3 & !is.na(data[[1]]) , ] # only rows with first col == 3