Как переименовать столбцы фрейма данных в R
В этом руководстве объясняется, как переименовывать столбцы фрейма данных в R, используя различные подходы.
Для каждого из этих примеров мы будем работать со встроенным набором данных mtcars в R.
Переименование первых n столбцов с использованием базы R
Всего в mtcars 11 имен столбцов:
#view column names of mtcars names(mtcars) # [1] "mpg" "cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear" # [11] "carb"
Чтобы переименовать первые 4 столбца, мы можем использовать следующий синтаксис:
#rename first 4 columns names(mtcars)
Обратите внимание, что R начинается с имени первого столбца и просто переименовывает столько столбцов, сколько вы ему предоставляете. В этом примере, поскольку имеется 11 имен столбцов, а мы предоставили только 4 имени столбца, были переименованы только первые 4 столбца. Чтобы переименовать все 11 столбцов, нам нужно предоставить вектор из 11 имен столбцов.
ПереименованиеСтолбцы по имени с использованием базы R
Если мы хотим переименовать определенный столбец в наборе данных mtcars , например столбец «wt», мы можем сделать это по имени:
#rename just the "wt" column in mtcars names(mtcars)[names(mtcars)=="wt"]
Обратите внимание, что только столбец «вес» переименовывается в «вес», а все остальные столбцы сохраняют свои первоначальные имена.
ПереименованиеСтолбцы по индексу с использованием базы R
Мы также можем переименовать определенный столбец в наборе данных mtcars по индексу. Например, вот как переименовать второе имя столбца «cyl» по индексу:
#rename the second column name in mtcars names(mtcars)[2]
Обратите внимание, что только столбец «cyl» переименовывается в «цилиндры», а все остальные столбцы сохраняют свои первоначальные имена.
ПереименованиеСтолбцы с использованием dplyr
Другой способ переименовать столбцы в R — использовать функцию rename() в пакете dplyr.Основной синтаксис для этого следующий:
data %>% rename(new_name1 = old_name1, new_name2 = old_name2, . )
Например, вот как переименовать имена столбцов «mpg» и «cyl» в наборе данных mtcars :
#install (if not already installed) and load dplyr package if(!require(dplyr)) #rename the "mpg" and "cyl" columns new_mtcars % rename( miles_g = mpg, cylinder = cyl ) #view new column names names(new_mtcars) # [1] "miles_g" "cylinder" "disp" "hp" "drat" "wt" # [7] "qsec" "vs" "am" "gear" "carb"
Используя этот подход, вы можете переименовывать сразу столько столбцов, сколько хотите по имени.
ПереименованиеСтолбцы с использованием data.table
Еще один способ переименовать столбцы в R — использовать функцию setnames() в пакете data.table.Основной синтаксис для этого следующий:
setnames(data, old=c("old_name1","old_name2"), new=c("new_name1", "new_name2"))
Например, вот как переименовать имена столбцов «mpg» и «cyl» в наборе данных mtcars :
#install (if not already installed) and load data.table package if(!require(data.table)) #rename "mpg" and "cyl" column names in mtcars setnames(mtcars, old=c("mpg","cyl"), new=c("miles_g", "cylinder")) #view new column names names(mtcars) #[1] "miles_g" "cylinder" "disp" "hp" "drat" "wt" #[7] "qsec" "vs" "am" "gear" "carb"
Используя этот подход, вы можете переименовывать сразу столько столбцов, сколько хотите по имени.
Как переименовать объект в R (с примерами)
Чтобы переименовать объект в R, мы можем использовать оператор присваивания следующим образом:
new_name
Этот синтаксис можно использовать для переименования векторов, фреймов данных, матриц, списков и любых других типов объектов данных в R.
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: переименовать объект в R
Предположим, у нас есть следующий фрейм данных с именем my_data в R:
#create data frame some_data
Мы можем использовать оператор присваивания, чтобы переименовать этот фрейм данных в new_data :
#rename data frame new_data
Обратите внимание, что теперь мы можем ввести new_data для просмотра этого фрейма данных.
Однако важно отметить, что старое имя some_data по-прежнему можно использовать для ссылки на этот фрейм данных:
#view data frame some_data x y z 1 3 3 1 2 4 8 2 3 4 7 2 4 5 10 6 5 9 4 7
Чтобы удалить это имя из нашей среды R, мы можем использовать функцию rm() :
#remove old name of data frame rm(some_data)
Теперь, если мы попытаемся использовать старое имя, объект больше не будет находиться в нашей среде:
#attempt to use old name to view data frame some_data Error: object 'some_data' not found
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:
Урок 1 Функции select(), rename_with() и relocate()
Первый урок курса посвящён таким операциям, как продвинутый выбор столбцов, их переименование и изменения порядка столбцов таблицы.
В этом видео уроке мы познакомимся с такими функциями как: select() , rename_with() , relocate() , any_of() , all_of() .
1.2 Видео
1.3 Код
#devtools::install_github("tidyverse/dplyr") library(dplyr, warn.conflicts = FALSE) # rename # Переименовать столбцы для устранение дублирования их имён df1 tibble(a = 1:5, a = 5:1, .name_repair = "minimal") df1 df1 %>% rename(b = 2) # select # обращение к столбцам по типу df2 tibble(x1 = 1, x2 = "a", x3 = 2, y1 = "b", y2 = 3, y3 = "c", y4 = 4) # числовые столбцы df2 %>% select(is.numeric) # НЕ текстовые столбцы df2 %>% select(!is.character) # смешанный тип обращения # числовые стобцы, название которых начинается на X df2 %>% select(starts_with("x") & is.numeric) # выбор полей с помощью функций any_of и all_of vars c("x1", "x2", "y1", "z") df2 %>% select(any_of(vars)) df2 %>% select(all_of(vars)) # функция rename_with df2 %>% rename_with(toupper) df2 %>% rename_with(toupper, starts_with("x")) df2 %>% rename_with(toupper, is.numeric) # relocate для изменения порядка стобцов df3 tibble(w = 0, x = 1, y = "a", z = "b") # переместить столбцы y, z в начало df3 %>% relocate(y, z) # переместить текстовые столбцы вначало df3 %>% relocate(is.character) # поместить столбец w после y df3 %>% relocate(w, .after = y) # поместить столбец w перед y df3 %>% relocate(w, .before = y) # переместить w в конец df3 %>% relocate(w, .after = last_col())
1.4 Упражнения
Для примера мы будем использовать встроенный набор данных iris , выполните следующие действия:
- Выберите все столбцы, которые заканчиваются на Width .
- Переместите с помощью функции relocate() единственный текстовый столбец в левую часть таблицы.
- Замените с помощью функции rename_with() в названии столбцов точку на нижнее подчёркивание, и преобразуйте имена в нижний регистр.
изменить значение данных в столбце в датафрейме в R
У меня есть датафрейм с 4 столбцами, в котором один из столбцов содержит данные, допустим, a, b, c, d, e. Всего 582 строки с этими значениями. Мне нужно заменить в последнем столбце "a" и "b" на 1, а "c", "d", "e" на 0 и создать новый шестой столбец, в котором присутствуют только эти 0 и 1 (для последующей логистической регрессии). Как я могу это сделать? Дали подсказку, что можно с помощью dplyr, но пока нет представления.
Нужно создать столбец Е, где заменить значения из столбца D на 0 и 1 так что: a, b = 1; c, d, e = 0 чтобы получилось так:
A B C D E R1 3 1 2 a 1 R2 2 2 1 c 0 R3 1 3 4 c 0 R4 4 3 5 e 0 R5 5 4 2 d 0 R6 3 1 1 b 1 R7 4 4 3 a 1 R8 2 2 2 b 1
Отслеживать
задан 29 окт 2021 в 15:46
57 6 6 бронзовых знаков
Пожалуйста, уточните вашу конкретную проблему или приведите более подробную информацию о том, что именно вам нужно. В текущем виде сложно понять, что именно вы спрашиваете.