匹配R中的数据帧

时间:2015-10-08 20:51:54

标签: r dataframe

我正在尝试自定义匹配2个数据帧(我认为不同于连接)。我想从df1和df2获得df3。这是示例代码 -

function drawLine2(){
    k = k - 1;
    l = l + 1;
    x2 = k;
    y2 = l;

    if ( k <= 0 ){
        k = 0;
    }
    if ( l >= 299 ){
        l = 299;
    }

    ctx.beginPath();
    ctx.strokeStyle = "#000000";
    ctx.lineWidth = 1;
    ctx.moveTo(150, 150);
    ctx.lineTo(x2, y2);
    ctx.stroke();
}

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

首先合并数据,保留df2

的所有行
df3 = merge(df1, df2, all.y = TRUE)

然后重新排序列,以便只存在来自df1的列,它们的顺序相同:

(df3 = df3[names(df1)])
#   c1 c2 c3 c4
# 1 NA  6  4 NA
# 2 NA  8  5 NA

请注意,这假设如果存在匹配项,则需要从额外的df1列中提取值。也就是说,如果df1的行有c2 == 6c3 == 4,那么c4c1的行值最终会在{ {1}}代替df3