2013-10-02 32 views
0

我有一個很大的數據框。如果第一行中的值不低於某個閾值,我需要通過並測試第一行值並刪除列。應用函數刪除列R

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

你可以這樣做:

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

如果你不使用apply功能,但在量化代替。表達式colors['red',] < 2.5導致邏輯向量(TRUE,0 FALSE)與其中表達式有效的TRUE以及不存在的FALSE。您可以使用此邏輯向量來索引colors,其中使用colors[, logical_vector]可確保您使用邏輯向量來索引列。

2

試試這個

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