На самом деле вы можете сначала упорядочить строки по Freq
, а затем отфильтровать строки, которые Var1 != "NI"
, так как фильтрация не повлияет на порядок убывания.
В этом случае ваш код может быть написано компактно (не нужно двух шагов), т. е.
dfout <- subset(df[order(df$Freq,decreasing = TRUE),],Var1!="NI")
так, чтобы
> dfout
Var1 Var2 Freq
355 33 taq 143
352 11 taq 114
138 77 esc 111
354 22 taq 105
360 88 taq 69
314 1212 ret 66
363 BB taq 47
323 AA ret 46
361 99 taq 33
358 66 taq 26
357 55 taq 23
356 44 taq 20
DATA
df <- structure(list(Var1 = c("NI", "BB", "AA", "99", "88", "77", "66",
"55", "44", "33", "22", "1212", "11"), Var2 = c("taq", "taq",
"ret", "taq", "taq", "esc", "taq", "taq", "taq", "taq", "taq",
"ret", "taq"), Freq = c(100L, 47L, 46L, 33L, 69L, 111L, 26L,
23L, 20L, 143L, 105L, 66L, 114L)), class = "data.frame", row.names = c("364",
"363", "323", "361", "360", "138", "358", "357", "356", "355",
"354", "314", "352"))