A: verifique se a linha de um quadro de dados existe em outro


Você pode usar a seguinte sintaxe para adicionar uma nova coluna a um quadro de dados em R que indica se cada linha existe em outro quadro de dados:

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

Esta sintaxe específica adiciona uma coluna chamada exist ao quadro de dados chamado df1 que contém TRUE ou FALSE para indicar se cada linha em df1 existe em outro quadro de dados chamado df2 .

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: verifique se a linha de um quadro de dados existe em outro em R

Suponha que temos os dois quadros de dados a seguir em 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.

Podemos usar a seguinte sintaxe para adicionar uma coluna chamada existe ao primeiro quadro de dados que indica se cada linha existe no segundo quadro de dados:

 #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

A nova coluna existe indica se cada linha do primeiro quadro de dados existe no segundo quadro de dados.

Pelo resultado podemos ver:

  • A primeira linha de df1 existe em df2 .
  • A segunda linha de df1 não existe em df2 .
  • A terceira linha de df1 não existe em df2 .

E assim por diante.

Observe que você também pode usar is.numeric() para exibir 1s e 0s em vez de TRUE ou FALSE na coluna existente:

 #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

Um valor 1 indica que a linha do primeiro bloco de dados existe no segundo.

Por outro lado, um valor 0 indica que a linha no primeiro quadro de dados não existe no segundo.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:

A: Como verificar se várias colunas são iguais
R: Como selecionar linhas únicas em um quadro de dados
R: Como replicar linhas em um quadro de dados

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *