Как удалить столбцы из фрейма данных в R (с примерами)
Самый простой способ удалить столбцы из фрейма данных в R — использовать функцию subset() , которая использует следующий базовый синтаксис:
#remove columns var1 and var3 new_df
В следующих примерах показано, как использовать эту функцию на практике со следующим фреймом данных:
#create data frame df
Пример 1. Удаление столбцов по имени
В следующем коде показано, как удалить столбцы из фрейма данных по имени:
#remove columns var1 and var3 new_df
Пример 2. Удаление столбцов по индексу
В следующем коде показано, как удалить столбцы из фрейма данных по индексу:
#remove first and fourth columns new_df
Пример 3: удаление столбцов в списке
В следующем коде показано, как удалить из фрейма данных столбцы, принадлежащие определенному списку:
#define list of columns to remove remove_cols
Пример 4: удаление столбцов в диапазоне
В следующем коде показано, как удалить столбцы из фрейма данных в определенном диапазоне:
#remove columns in range of 1 to 3 new_df = subset(df, select = - c(1:3)) #view updated data frame new_df var4 1 14 2 16 3 22 4 19 5 18
Как удалить столбцы в R (с примерами)
Часто вам может понадобиться удалить один или несколько столбцов из фрейма данных в R. К счастью, это легко сделать с помощью функции select() из пакета dplyr .
library(dplyr)
В этом руководстве показано несколько примеров использования этой функции на практике с использованием следующего фрейма данных:
#create data frame df
Пример 1: удаление столбцов по имени
В следующем коде показано, как удалить столбцы из фрейма данных по имени:
#remove column named 'points' df %>% select(-points) player position rebounds 1 a G 5 2 b F 7 3 c F 7 4 d G 12 5 e G 11
Пример 2: удаление столбцов в списке
В следующем коде показано, как удалить столбцы из фрейма данных, которые находятся в определенном списке:
#remove columns named 'points' or 'rebounds' df %>% select(-one_of('points', 'rebounds')) player position 1 a G 2 b F 3 c F 4 d G 5 e G
Пример 3: удаление столбцов в диапазоне
В следующем коде показано, как удалить все столбцы в диапазоне от «позиция» до «отборы»:
#remove columns in range from 'position' to 'rebounds' df %>% select(-(position:rebounds)) player 1 a 2 b 3 c 4 d 5 e
Пример 4. Удаление столбцов, содержащих фразу
В следующем коде показано, как удалить все столбцы, содержащие слово «точки».
#remove columns that contain the word 'points' df %>% select(-contains('points')) player position rebounds 1 a G 5 2 b F 7 3 c F 7 4 d G 12 5 e G 11
Пример 5. Удаление столбцов, начинающихся с определенных букв
Следующий код показывает, как удалить все столбцы, начинающиеся с букв «po»:
#remove columns that start with 'po' df %>% select(-starts_with('po')) player rebounds 1 a 5 2 b 7 3 c 7 4 d 12 5 e 11
Пример 6. Удаление столбцов, заканчивающихся определенными буквами
В следующем коде показано, как удалить все столбцы, оканчивающиеся на букву "s":
#remove columns that end with 's' df %>% select(-ends_with('s')) player position 1 a G 2 b F 3 c F 4 d G 5 e G
Пример 7: удаление столбцов по положению
Следующий код показывает, как удалить столбцы в определенных позициях:
#remove columns in position 1 and 4 df %>% select(-1, -4) position points 1 G 12 2 F 15 3 F 19 4 G 22 5 G 32
Примечание.Полную документацию по функции select() можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции с помощью dplyr:
Урок 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() в названии столбцов точку на нижнее подчёркивание, и преобразуйте имена в нижний регистр.
Python R Как удалить строки в CSV файле по аналогичному значению столбца другого CSV файла
Иначе говоря из 1 файла нужно удалить строки с встречающимися id файла 2 и записать остаток в 3 файл. Пытался через сравнение строк решить задачу, но как потом выяснил после id строки не идентичны и способ не сработал. Через pandas нет опыта вычитать строки по столбцам. Ещё иными словами - нужно найти повторяющиеся значения в столбцах id 1 и 2 файлов и удалить строчки с этими id в 1 файле.