2013-12-03 1 views
0

Я хотел бы подмножество данных, выбрав только столбцы, которые превышают определенный диапазон. IE, я хотел бы оценить max-min для каждого столбца отдельно и выбрать только столбцы, диапазон которых больше заданного значения. Например, учитывая следующее простое dataframe, я хотел бы создать подмножество dataframe, который содержит только столбцы с диапазоном> 99.Подмножество данных на основе статистического диапазона каждого столбца

d <- data.frame(a=seq(0,10,1),b=seq(0,100,10),c=seq(0,200,20)) 

Я попытался модифицировать пример здесь (Колонный б в с.): Subset a dataframe based on a single condition applied to multiple columns , но не повезло. Я уверен, что я пропустил что-то простое.

ответ

2

Вы можете использовать sapply() для применения функции к каждому столбцу d, а затем рассчитать разницу для диапазона значений столбцов. Затем сравните его с 99. В результате вы получите TRUE или FALSE, а затем используйте его для подмножества столбцов.

d[,sapply(d,function(x) diff(range(x))>99)] 
+0

Очень ценный! Спасибо! – damian

Смежные вопросы