应用函数删除列R.

时间:2013-10-02 12:58:14

标签: r apply

我有一个大数据框。我需要检查第一行值并删除列,如果第一行中的值不低于某个阈值。

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的列?

非常感谢!我还是很陌生!

2 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

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

您不使用apply函数,而是使用矢量化。表达式colors['red',] < 2.5导致一个逻辑向量(TRUEFALSE),其中TRUE表达式有效,而FALSE表示不存在。您可以使用此逻辑向量来索引colors,其中使用colors[, logical_vector]可确保您使用逻辑向量来索引列。

答案 1 :(得分:2)

试试这个

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