Я пытаюсь найти элегантную функцию для упорядочивания data.frames, содержащихся в объекте списка. Я уже знаю, что lapply (df, function (x) x [with (x, order (var)),]) работает нормально, но это кажется слишком сложным. Я пытаюсь использовать функцию «[», которая прекрасно работает, если я ввожу номера строк вручную. Но я бы хотел использовать номера строк, сгенерированные функцией порядка, очевидно.
df <- list(
data.frame(name = c("John", "Paul", "George", "Ringo"), height = c(60, 58, 65, 55)),
data.frame(name = c("Frank", "Tony", "Arthur", "Edward"), height = c(55, 65, 60, 50))
)
lapply(df, "[", c("height", "name"))
lapply(df, "[", c(3:1), )
order <- lapply(df, with, order(name))
order
lapply(df, with, order(name), "[")
lapply(df, with, "[", order(name), )
lapply(df, "[", with, order(name), )
Map("[", order , , df)