[英]generating a vector of difference between two vectors
我有两个csv文件,每个文件由一列数据组成
例如,vecA.csv就像
id
1
2
vecB.csv就像
id
3
2
我读了数据集如下:
vectorA<-read.table("vecA.csv",sep=",",header=T)
vectorB<-read.table("vecB.csv",sep=",",header=T)
我想生成一个由属于B的元素组成的向量。
您正在寻找函数setdiff
setdiff(vectorB$id, vectorA$id)
如果您不希望将此缩减为唯一值,则可以创建一个not in
函数
(感谢@joran在这里与否定相匹配 )
'%nin%' <- Negate('%in%')
vectorB$id[vectorB$id %nin% vectorA$id]
如果你的向量是data.table
s,那么你只需要五个字符:
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]在v1.8.7中,读取文件也更简单快捷:
A <- setkey(fread("vecA.csv"), id)
B <- setkey(fread("vecB.csv"), id)
B[!A]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.