Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
私はデータフレームを持っています:
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 でしきい値を設定し、そのしきい値を超えるカウントがゼロの列を削除するとよいでしょう。
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