我有一个大数据框。我需要检查第一行值并删除列,如果第一行中的值不低于某个阈值。
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的列?
非常感谢!我还是很陌生!
答案 0 :(得分:2)
您可以执行以下操作:
> colors[,colors['red',] < 2.5]
[,1] [,2]
red 1 2
blue 4 5
您不使用apply
函数,而是使用矢量化。表达式colors['red',] < 2.5
导致一个逻辑向量(TRUE
,FALSE
),其中TRUE
表达式有效,而FALSE
表示不存在。您可以使用此逻辑向量来索引colors
,其中使用colors[, logical_vector]
可确保您使用逻辑向量来索引列。
答案 1 :(得分:2)
试试这个
> colors[,colors[1, ]<2.5 ]
[,1] [,2]
red 1 2
blue 4 5