我有一个包含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。
保罗。
答案 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