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)