Выберите строку кадра данных и упорядочите столбцы в порядке возрастания или убывания в R - PullRequest
0 голосов
/ 20 марта 2020

У меня есть

df<-data.frame(time=c("one", "two", "three", "four", "five"), A=c(1,2,3,4,5), B=c(5,1,2,3,4), C=c(4,5,1,2,3), D=c(3,4,5,1,2), E=c(2,3,4,5,1), EF=c(1,2,3,4,5))

Я хотел бы выбрать, например, df [df $ time == "one,] и упорядочить столбцы в порядке убывания (если это возможно в base R и dplyr ) и выведите фрейм данных. Например, для df[df$time=="one,] это будет

output.one<-data.frame(time=c("one"), B=c(5), C=c(4), D=c(3), E=c(2), A=c(1))
output.one
  time B C D E A
1  one 5 4 3 2 1

и для df[df$time=="five,]

> output.five<-data.frame(time=c("five"), A=c(5), B=c(4), C=c(3), D=c(2), E=c(1))
> output.five
  time A B C D E
1 five 5 4 3 2 1

Ответы [ 2 ]

1 голос
/ 20 марта 2020

Использование труб:

library(magrittr)
df %>% 
  .[.$time == "one", ] %>% 
  .[c(1, 1 + order(-.[-1]))] # "-" short for decreasing = TRUE

  time B C D E A
1  one 5 4 3 2 1
1 голос
/ 20 марта 2020

в базе R

order.one <- 1+order(df[df$time=="one",][(2:ncol(df))],decreasing = TRUE)
output.one <- df[df$time=="one",][c(1,order.one)]

Порядок можно переключить на возрастание, удалив decreasing = TRUE

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...