¿Eliminar filas que existen en otro dataframe?

Tengo los dos marcos de datos siguientes (ejemplo):

df1:

name profile type strand A 4.5 1 + B 3.2 1 + C 5.5 1 + D 14.0 1 - E 45.1 1 - F 32.8 1 - G 19.9 1 + 

df2:

 name A B C G 

Me gustaría eliminar las filas en df1 para las cuales df1$name = df2$name para obtener lo siguiente:

Salida:

 name profile type strand D 14.0 1 - E 45.1 1 - F 32.8 1 - 

Si alguien pudiera decirme qué código usar, sería de mucha ayuda, al principio me pareció simple, pero lo he estado estropeando desde ayer.

    Necesita el operador %in% . Asi que,

     df1[!(df1$name %in% df2$name),] 

    debería darte lo que quieres

    • df1$name %in% df2$name prueba si los valores en df1$name están en df2$name
    • El ! el operador revierte el resultado.

    Esto a veces se llama un anti-join :

     library(dplyr) anti_join(df1, df2, by = "name") 
     df1[!(as.character(df1$jobId) %in% as.character(df2$name)), ] 

    Tuve que agregar as.character a mi ejecución porque el name no es un personaje sino un factor en su lugar. ¿No se supone que %in% convierta esto directamente?