2

私はデータフレームを持っています:

mat=data.frame(A=c(12,10,0,14,0,60),B=c(0,0,0,0,13,65))

問題は、ゼロの数が多すぎる [例: > 50%] 列を除外するにはどうすればよいかということです。たとえば、列 B を削除する必要があります。

nrow(mat) * 0.5 でしきい値を設定し、そのしきい値を超えるカウントがゼロの列を削除するとよいでしょう。

4

1 に答える 1

5

1 つの方法を次に示します。

> mat <- data.frame(A=c(12,10,0,14,0,60),B=c(0,0,0,0,13,65))
> 
> keep <- (colSums(mat > 0) / nrow(mat)) > 0.5
> keep
    A     B 
 TRUE FALSE 
> 
> mat[, keep, drop = FALSE]
   A
1 12
2 10
3  0
4 14
5  0
6 60
于 2012-10-23T13:54:28.337 に答える