В одной строке кода команда structure
создает объект и назначает атрибуты:
structure(df[,2:length(df)], names = names(df)[1:(length(df)-1)])
Признавая, что data.frame представляет собой список векторов равной длины, где каждый вектор представляет В столбце также будет работать следующее:
structure(df[2:length(df)], names = names(df)[1:(length(df)-1)])
Примечание: запятая в df[1:length(df)]
.
Также мне нравится хитрость удаления элементов из вектора или списка с использованием отрицательного индекса. Так что я думаю, что еще чище код:
structure(df[-1], names = names(df)[-length(df)])