suma - vectores ejercicios
generando un vector de diferencia entre dos vectores (2)
Tengo dos archivos csv, y cada uno de ellos consta de una columna de datos
Por ejemplo, vecA.csv es como
id
1
2
vecB.csv es como
id
3
2
Leí el conjunto de datos de la siguiente manera:
vectorA<-read.table("vecA.csv",sep=",",header=T)
vectorB<-read.table("vecB.csv",sep=",",header=T)
Quiero generar un vector que consista en elementos que pertenecen solo a B.
Si su vector es en cambio data.table
s, todo lo que necesita son cinco caracteres:
B[!A]
library(data.table)
# read in your data, wrap in data.table(..., key="id")
A <- data.table(read.table("vecA.csv",sep=",",header=T), key="id")
B <- data.table(read.table("vecB.csv",sep=",",header=T), key="id")
# Then this is all you need
B[!A]
[Matthew] Y en v1.8.7 es más simple y rápido leer el archivo también:
A <- setkey(fread("vecA.csv"), id)
B <- setkey(fread("vecB.csv"), id)
B[!A]
Usted está buscando la función setdiff
setdiff(vectorB$id, vectorA$id)
Si no deseaba que esto se redujera a valores únicos, podría crear una función que not in
funcionamiento
(felicitaciones a @joran aquí Match con negación )
''%nin%'' <- Negate(''%in%'')
vectorB$id[vectorB$id %nin% vectorA$id]