A: проверьте, существует ли строка одного фрейма данных в другом.


Вы можете использовать следующий синтаксис, чтобы добавить новый столбец в фрейм данных в R, который указывает, существует ли каждая строка в другом фрейме данных:

 df1$exists <- do. call (paste0, df1) %in% do. call (paste0, df2)

Этот конкретный синтаксис добавляет столбец с именем существования к кадру данных с именем df1 , который содержит TRUE или FALSE , чтобы указать, существует ли каждая строка в df1 в другом кадре данных с именем df2 .

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: проверьте, существует ли строка из одного фрейма данных в другом в R.

Предположим, у нас есть следующие два фрейма данных в R:

 #create first data frame
df1 <- data. frame (team=c('A', 'B', 'C', 'D', 'E'),
                  dots=c(12, 15, 22, 29, 24))

#view first data frame
df1

  team points
1 to 12
2 B 15
3 C 22
4 D 29
5 E 24

#create second data frame
df2 <- data. frame (team=c('A', 'D', 'F', 'G', 'H'),
                  dots=c(12, 29, 15, 19, 10))

#view second data frame
df2

  team points
1 to 12
2 D 29
3 F 15
4 G 19
5:10 a.m.

Мы можем использовать следующий синтаксис, чтобы добавить столбец с именем существует в первый фрейм данных, который указывает, существует ли каждая строка во втором фрейме данных:

 #add new column to df1 that shows if row exists in df2
df1$exists <- do. call (paste0, df1) %in% do. call (paste0, df2)

#view updated data frame
df1

  team points exists
1 TO 12 TRUE
2 B 15 FALSE
3 C 22 FALSE
4 D 29 TRUE
5 E 24 FALSE

Новый столбец существует указывает, существует ли каждая строка в первом фрейме данных во втором фрейме данных.

По результату мы видим:

  • Первая строка df1 существует в df2 .
  • Вторая строка df1 не существует в df2 .
  • Третья строка df1 не существует в df2 .

И так далее.

Обратите внимание, что вы также можете использовать is.numeric() для отображения 1 и 0 вместо TRUE или FALSE в существующем столбце:

 #add new column to df1 that shows if row exists in df2
df1$exists <- as. numeric (do. call (paste0, df1) %in% do. call (paste0, df2))

#view updated data frame
df1

  team points exists
1 to 12 1
2 B 15 0
3 C 22 0
4 D 29 1
5 E 24 0

Значение 1 указывает, что строка из первого блока данных существует во втором.

И наоборот, значение 0 указывает, что строка в первом кадре данных не существует во втором.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:

A: Как проверить, равны ли несколько столбцов
A: Как выбрать отдельные строки во фрейме данных
A: Как реплицировать строки во фрейме данных

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *