如果数据如此:
p <- c(1,2,3,4)
x <- c(2,3,4)
y<-c(10,20,12)
data<-cbind(x, y)
# x y
#[1,] 2 10
#[2,] 3 20
#[3,] 4 12
我想在p上匹配x,所以我们有结果
# x y
#[1,] 0 0
#[2,] 2 10
#[3,] 3 20
#[4,] 4 12
如何在p作为对照后匹配此数据,并添加0 0,因为第一个单元格中的p与x的第一个单元格不匹配?
答案 0 :(得分:0)
使用基数R我们要做的是创建一个包含三列x,y和p的data.frame,其中p与x相同。然后我们只用p创建另一个data.frame,key。现在我们将合并作为完全外部联接,这将保持data
中不匹配key
的所有行。我们留下了一个带有三列p,x,y的data.frame,其中x和y是NA
。我们将NA
值替换为0,然后您可以选择删除p列。
data = data.frame(x,y,p=x)
key = data.frame(p)
result = merge(key,data,by="p",all=T)
result[is.na(result)] = 0