Я не знаю, чи варто додавати це як відповідь, чи коментар буде чудовим, але я написав функцію, яка називається, moveme
що дозволяє робити те, що ви хочете робити з мовою, яку ви описуєте. Ви можете знайти функцію за цією відповіддю: https://stackoverflow.com/a/18540144/1270695
Він працює на names
вашому data.frame
і створює вектор символів, який ви можете використовувати для впорядкування стовпців:
mydf <- data.frame(matrix(1:12, ncol = 4))
mydf
moveme(names(mydf), "X4 first")
moveme(names(mydf), "X4 first; X1 last")
mydf[moveme(names(mydf), "X4 first")]
Якщо ви перетасовуєте речі навколо цього, я пропоную перетворити їх data.frame
на a data.table
та скористатися setcolorder
(з моєю moveme
функцією, якщо ви хочете), щоб внести зміни за посиланням.
У своєму питанні ви також згадали "Я просто хочу вибрати одну колонку та перенести її на початок". Якщо це довільний стовпець, а не конкретно останній, ви також можете розглянути використання setdiff
.
Уявіть, що ви працюєте з набором даних «mtcars» і хочете перенести стовпець «am» на початок.
x <- "am"
mtcars[c(x, setdiff(names(mtcars), x))]