2015-04-12 3 views
-2

У меня есть фрейм данных, который я хочу изменить на основе среднего значения столбца. Я хочу, чтобы изменить порядок его уменьшения колонки означаютПереупорядочение столбцов данных в базе данных на основе среднего значения столбца

SNR  SignalIntensity ID 
1 1.0035798  6.817374 109 
2 11.9438978  11.545993 110 
4 3.2894878  9.780420 112 
5 4.0170266  9.871984 113 
6 1.6310523  9.078186 114 
7 1.6405415  8.228931 116 
8 1.6625413  8.043536 117 
9 0.8489116  6.179346 118 
10 7.5312260  10.558180 119 
11 7.2832911  10.474533 120 
12 0.5732577  4.157294 121 
14 0.8149754  6.045174 124 

Я использую следующий код

means <- colMeans(df) ## to get mean 
df <- df[,order(means)] ## to reorder 

получить mean столбцов и order, но я получаю столбец в увеличении среднего, напротив моего интерес. то, что я должен сделать, чтобы изменить порядок в убывающей колонке означают

Ожидаемый вывод

ID SignalIntensity  SNR 
1 109  6.817374 1.0035798 
2 110  11.545993 11.9438978 
4 112  9.780420 3.2894878 
5 113  9.871984 4.0170266 
6 114  9.078186 1.6310523 
7 116  8.228931 1.6405415 
8 117  8.043536 1.6625413 
9 118  6.179346 0.8489116 
10 119  10.558180 7.5312260 
11 120  10.474533 7.2832911 
12 121  4.157294 0.5732577 
14 124  6.045174 0.8149754 
+2

Я бы предложил взглянуть на [это] (http://stackoverflow.com/ вопросы/1296646/как к своему роду-а-dataframe-по-колонны-в-г). Первый Google сильно повлиял на любые варианты «сортировки»/«порядка» и «r». –

ответ

1

по умолчанию настройки в order является decreasing=FALSE. Мы можем изменить, что TRUE

df[order(means, decreasing=TRUE)] 

Или получить order отрицательных значений «означает»

df[order(-means)] 
+0

:) :) спасибо ... –

+0

@AaghazHussain Нет проблем. Вы можете проверить более подробную информацию в '' order' – akrun

+1

BTW, с девеловерной версией 'data.table' вы можете теперь заказать кадры данных * по ссылке * без преобразования в таблицу данных. Используя что-то вроде 'setcolorder (df, order (-means))' –

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