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['red',] < 2.5]
     [,1] [,2]
red     1    2
blue    4    5

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

于 2013-10-02T13:02:40.783 回答
2

尝试这个

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