/ / odovzdanie objektu v R s viacerými názvami premenných na usporiadanie / triedenie dátového rámca - r, sorting, dplyr

prechádzajúci objekt v R, s viacerými menami premenných, na objednávku / triedenie dátového rámca - r, triedenie, dplyr

Mám dátový rámec, ktorý hovorí:

var1 <- c(7,2,8,4,4)

var2 <- c("m" , "f" , "m" , "f" , "m")

var3 <- c("x" , "x" , "x" , "y" , "x")

df <- data.frame(var1 , var1 , var3)

Teraz chcem triediť údaje na var2, var3, var1 a mám objekt:

var_sort <- "var2, var3, var1"

Ktorý som extrahoval z iného dátového rámca.

Používam teda nasledujúci kód (dplyr):

sorted <- df %>%
arrange(var_sort)

a získajte nasledujúcu chybu:

Error: incorrect size (1), expecting :1439

Vyskúšal som tiež nasledovné, ale zoradené iba podľa prvej premennej:

test <- as.vector(strsplit(var_sort , ", "))

sorted <- df %>%
arrange_(.dots = test)

odpovede:

4 pre odpoveď č. 1

„test“ je stále a list dĺžky 1. Musíte ho previesť na vector alebo použitie as.list.

 df %>%
arrange_(.dots=as.list(test[[1]]))
#    var1 var2 var3
#1    2    f    x
#2    4    f    y
#3    4    m    x
#4    7    m    x
#5    8    m    x

alebo

df %>%
arrange_(.dots=test[[1]])

ktorý je rovnaký ako

df %>%
arrange(var1, var2, var3)
#   var1 var2 var3
#1    2    f    x
#2    4    f    y
#3    4    m    x
#4    7    m    x
#5    8    m    x

dáta

df <- data.frame(var1, var2, var3)