如何在r中执行iferror vlookup

如何在r中执行iferror vlookup,r,R,我已经用iferror和vlookup(如下所述)在excel中创建了一个公式。您能告诉我如何在R中复制相同的公式吗 此查找转到main_df,它与名为E&F的各个列相匹配 所以条件是E列上的vlookup和sheet1,如果是错误,那么F列上的vlookup和sheet2,如果是错误,那么E列上的vlookup和sheet3,基本上每次我得到一个NA,它应该只取那些值,然后进行下一个vlookup IFERROR(IFERROR(VLOOKUP($E2,'sheet1'!$K:$L,2,0),

我已经用iferror和vlookup(如下所述)在excel中创建了一个公式。您能告诉我如何在R中复制相同的公式吗

此查找转到main_df,它与名为E&F的各个列相匹配

所以条件是E列上的vlookup和sheet1,如果是错误,那么F列上的vlookup和sheet2,如果是错误,那么E列上的vlookup和sheet3,基本上每次我得到一个NA,它应该只取那些值,然后进行下一个vlookup

IFERROR(IFERROR(VLOOKUP($E2,'sheet1'!$K:$L,2,0),VLOOKUP($F2,'sheet2'!$A:$B,2,0)),VLOOKUP($E2,'sheet3'!$N:$O,2,0))
编辑:

   main_df
    Countries   City
    USA         Texas
    India       Mumbai
    China       Hunan
    Veitnam     Hue
其他DF

df_sheet1                            df_sheet2
    Countries Population          City      Population
    USA       1000000             Hunan     239857688
    India     118947759           Hue       667588
期望输出最终值

main_df
Countries   City      Population
USA         Texas     1000000
India       Mumbai    118947759
China       Hunan     239857688
Veitnam     Hue       667588

我假设您有两个dfs作为:

> data1
  Countries Population
1       USA    1000000
2     India  118947759

> data2
  Countries Population
1    Turkey     567748
2        UK    9857688
3     China  239857688
4    Canada     667588

> tomerge
  Countries
1       USA
2        UK
3     India
4     China
5   Denmark
6    Canada
7    Turkey
运行我在SO上的问题上找到的此函数

MyMerge <- function(x, y){
              df <- merge(x, y, by= "Countries", all.x= TRUE, all.y= TRUE)
              return(df)
            }

MyMerge请提供可复制的示例和预期输出。您自己已经尝试过了吗?Excel公式没有任何意义。我引用了Excel公式来说明。我已经解释了我要查找的内容。我要查找的输出是所有NA都应该具有匹配的值,根据查找完成的情况。假设df有国家名称,其余3张表1、表2、表3有人口。不同的表有不同的国家名称和人口数。因此,期望的输出将是V查找并获得主要df中的所有国家人口。希望提供解释。sheet1、sheet2、sheet3是3个不同的数据帧?问题是合并来自不同的df,而不是一个…因此提到df_sheet1、df_sheet2和df_sheet3,主df只有一些解决方法,但同样需要从主df中查找多个列(合并df)但该函数提供了仅从df“国家”中的一列合并的选项,并假设我在要映射的主df中也有“地区”。
final <- Reduce(MyMerge,list(data1,data2,tomerge))


> final
  Countries Population.x Population.y
1     India    118947759           NA
2       USA      1000000           NA
3    Canada           NA       667588
4     China           NA    239857688
5    Turkey           NA       567748
6        UK           NA      9857688
7   Denmark           NA           NA