Я получаю сообщение об ошибке при попытке отсортировать фрейм данных по столбцу model_AIC
пример данных
data <- structure(list(model_ID = list(model_table = character(0), model_info_2 = "S_M ~ 1 + average_Ca_LOG + (1 + average_Ca_LOG | ID)",
model_info_2 = "S_M ~ 1 + average_Mg_LOG + (1 + average_Mg_LOG | ID)",
model_info_2 = "S_M ~ 1 + average_K_LOG + (1 + average_K_LOG | ID)",
model_info_2 = "S_M ~ 1 + average_Mn_LOG + (1 + average_Mn_LOG | ID)",
model_info_2 = "S_M ~ 1 + average_Cu_LOG + (1 + average_Cu_LOG | ID)",
model_info_2 = "S_M ~ 1 + average_Zn_LOG + (1 + average_Zn_LOG | ID)"),
model_AIC = list(model_table = numeric(0), model_info_2 = "1504.62",
model_info_2 = "1636.35", model_info_2 = "1620", model_info_2 = "1407.41",
model_info_2 = "1855.04", model_info_2 = "1706.71"),
model_BIC = list(model_table = numeric(0), model_info_2 = "1531.06251699724",
model_info_2 = "1662.78856677628", model_info_2 = "1646.44040865957",
model_info_2 = "1433.85260732148", model_info_2 = "1881.47787878473",
model_info_2 = "1733.15601219833")), class = "data.frame", row.names = c("model_table",
"model_info_2", "model_info_2.1", "model_info_2.2", "model_info_2.3",
"model_info_2.4", "model_info_2.5"))
data[order(-data$model_AIC),][1:5,]
ошибка Ошибка в -data$model_AIC: недопустимый аргумент для унарного оператора
@jay.sf отлично работает, спасибо! Есть ли способ сделать это в порядке возрастания?
Попробуй понять код, а потом убери минус в order()
.
Вы можете попробовать с tidyverse. Код станет легче читать. Например
library(tidyverse)
data %>%
mutate(model_AIC_int = as.integer(model_AIC)) %>%
arrange(desc(model_AIC_int))
# or just
data %>%
arrange(desc(as.integer(model_AIC)))
Попробуйте
data[c(1, order(-as.numeric(unlist(data$model_AIC[-1]))) + 1), ]
.