选择R中沿1行的前5个最高列

时间:2018-05-24 06:46:20

标签: r

我有一个包含65列的单行数据框....每个包含一个数字。 我想制作另一个单行数据帧,它只包含原始数据帧中的前5列(最高数值)。 我怎么在R ..?

x <- data.frame(a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9,j=10)

例如我只想要前5个cols。

保罗。

2 个答案:

答案 0 :(得分:1)

您可以使用tidyverse方法。

require(tidyverse)

x <- data.frame(a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9,j=10)

x %>% 
  gather(var, value) %>% 
  arrange(value) %>% 
  tail()

   var value
5    e     5
6    f     6
7    g     7
8    h     8
9    i     9
10   j    10

答案 1 :(得分:0)

正如@SaurabhChauchan建议的那样,最简单的方法是订购你的专栏,只选择前5个专栏:

## The data frame
x <- data.frame(a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9,j=10)

#  a b c d e f g h i  j
#1 1 2 3 4 5 6 7 8 9 10


## Selecting the five columns with the highest value
sort(x[1,], decreasing = TRUE)[1:5]

#   j i h g f
#1 10 9 8 7 6