0

大きなデータフレームがあります。値の最初の行を調べてテストし、最初の行の値が特定のしきい値を下回っていない場合は列を削除する必要があります。

red <- c(1,2,3)
blue <- c(4, 5, 4)
colors <- data.frame(red, blue)
colors <- t(colors)
colors
     [,1] [,2] [,3]
red     1    2    3
blue    4    5    4

たとえば、赤の値が 2.5 未満の列だけを保持するにはどうすればよいでしょうか?

本当にありがとう!私はまだこれにかなり慣れていません!

4

2 に答える 2

2

これを試して

> colors[,colors[1, ]<2.5 ]
     [,1] [,2]
red     1    2
blue    4    5
于 2013-10-02T13:03:24.670 に答える
2

次のようなことができます。

> colors[,colors['red',] < 2.5]
     [,1] [,2]
red     1    2
blue    4    5

関数を使用せずapply、代わりにベクトル化します。式は、式が有効な場所と有効でない場所を含む論理ベクトル ( , ) にcolors['red',] < 2.5つながります。この論理ベクトルを使用してインデックスを付けることができます。使用すると、論理ベクトルを使用して列にインデックスを付けることが保証されます。TRUEFALSETRUEFALSEcolorscolors[, logical_vector]

于 2013-10-02T13:02:40.783 に答える