2013-10-02 7 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?

Большое спасибо! Im все еще довольно новый к этому!

ответ

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] вы можете использовать логический вектор для индексирования столбцов.

2

Попробуйте

> colors[,colors[1, ]<2.5 ] 
    [,1] [,2] 
red  1 2 
blue 4 5 
Смежные вопросы