R - 需要提取两个数据集但是得到错误"错误在fix.by(by.y,y)"

时间:2015-03-25 03:29:48

标签: r

我正在尝试合并两个数据集

  1. se_lif_1SE_NOTOT_CV_LIF
  2. ext_merchant_account包含以下76列:

    “SE_NO”, “SEIMS_INDUS_DS_CD”, “CUR_MER_STA_CD”, “CLNT_MAN_CHAN_CD”, “MER_SETUP_DT”

  3. 使用以下代码:

    se_lif_2 <- merge(se_lif_1,
         ext_merchant_account[(ext_merchant_account$CUR_MER_STA_CD %in%
         c("A","R")) & (ext_merchant_account$CLNT_MAN_CHAN_CD %in% 
         c("I","X", " ")) & (ext_merchant_account$MER_SETUP_DT < 
         S_date),"SEIMS_INDUS_DS_CD"],by = "SE_NO" )
    

    但是低于错误:

    "Error in fix.by(by.y, y) : 'by' must specify a uniquely valid column"
    

    同样S_date是一个类“Date”的对象,其中包含一个记录,我在一个逻辑条件中使用该记录来对来自ext_merchant_account数据帧的数据进行子集化。

    我还检查了“by”中变量的类,这对于两个数据集都是相同的(即整数)。

    我也尝试使用by.x&amp; by.y但是又遇到了同样的错误。任何人都可以指出我在这段代码中所做的错误。

    提前感谢您的帮助。

    干杯,

    阿米特

1 个答案:

答案 0 :(得分:1)

我的猜测是您未能在代码中选择SE_MO。要使用merge,两个数据帧都需要共享一个公共变量。最有可能的是,缺少一个数据框SE_MO

合并代码应如下所示:

newDF=merge(df1,df2,by=SE_MO)

要重命名您可能想要使用的变量:

names(df1)[1]=c("SE_MO") #'1' refers to location of column