Я хотел бы изменить имена столбцов с первой строкой данных.
Это решение в моем предыдущем посте работает для этой части.
OTH, внутрифункции setNames
Я хотел бы добавить еще один уровень для изменения имен столбцов только для выбранных столбцов.
Вот проблема
df <- data.frame(replicate(10,sample(100,2,rep=TRUE)))
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
1 76 44 89 13 8 31 12 21 50 36
2 78 27 81 75 61 84 2 65 43 51
library(dplyr)
df1 <- df %>%
select(X1:X5)%>%
setNames(as.character(.[1,]))
, которая дает
> print(df1)
76 44 89 13 8
1 76 44 89 13 8
2 78 27 81 75 61
Хорошо, достаточно справедливо!но я хочу сохранить имена столбцов, скажем, X1,X2
и X3
и изменить только с X4 на максимальное количество столбцов
Поэтому я пытаюсь
df1 <- df %>%
select(X1:X5)%>%
setNames(as.character(.[1,X4:max(ncol(.))]))
Ошибка в[.data.frame
(., 1, X4: max (ncol (.))): Объект 'X4' не найден
Хорошо, возможно, мне нужно указать местоположение столбца по номеру
df1 <- df %>%
select(X1:X5)%>%
setNames(as.character(.[1,4:max(ncol(.))]))
> print(df1)
13 8 NA NA NA
1 76 44 89 13 8
2 78 27 81 75 61
Как мы видим здесь, в именах произошел сдвиг.Имена начинаются с первого столбца, даже если я указал местоположение столбца с помощью 4:max(ncol(.))
Почему это происходит?Любая помощь будет оценена!
Ожидаемый результат.(Я также хотел бы удалить первую строку после этой операции setName)
X1 X2 X3 13 8
1 78 27 81 75 61