R сдвиг значений кадра данных влево при сохранении заголовков - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть CSV-файл с заголовками в форме:

a,b,c,d
1,6,5,6,8

df <- read_csv("test.csv")

По какой-то причине значение 1 в примере неверно, и чтобы исправить файл, я бы хотел сместить все остальные значения в слева и, таким образом, сбрасывают 1, но сохраняя столбцы, заканчивающиеся на:

a,b,c,d
6,5,6,8

Как мне этого добиться?

Ответы [ 2 ]

1 голос
/ 30 апреля 2020

Что по этому поводу:

headers <- names(df)
new_df <- df[, 2:length(df)]
names(new_df) <- headers
0 голосов
/ 30 апреля 2020

В одной строке кода команда 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)])
...