当前位置: 首页 > 知识库问答 >
问题:

比较两个数据帧的列名。如果匹配,则提取行值

仲孙思源
2023-03-14

我目前正在尝试比较两个数据帧(例如df1和df2)的列名,并从其中一个(df2)中提取值(如果匹配的话),以创建一个新的(第三个)数据帧。

df1 <- data.frame(x3=469, x4=465, x7=501, x10=467, x12=459)
df2 <- data.frame(x3="IL_NA1A_P", x4="IL_NA3D_P", x5="PROD005_P", x6="PROD008_P", 
                  x7="PROD009_P", x8="PROD010_P", x9="PROD012_P", x10="PROD014_P",
                  x11="PROD021_P", x12="PROD023A_P")
x3  x4  x7 x10 x12
IL_NA1A_P IL_NA3D_P PROD009_P PROD014_P PROD023A_P

共有1个答案

公羊宇定
2023-03-14

这将起作用:

df2[, colnames(df2) %in% colnames(df1)]
    x3        x4        x7       x10        x12
1 IL_NA1A_P IL_NA3D_P PROD009_P PROD014_P PROD023A_P

您只需检查DF2的哪些列名也出现在DF1中,并从DF2中选择这些列。

 类似资料:
  • 我有两个不同大小的数据帧,我想对四个不同列中的所有值进行比较(两组) 基本上,我希望看到df1['A']==df2['A'] 我的实际数据帧要大得多(120000行数据,A列的值从1到700,B列的值从1到300),所以我知道这可能是一个更长的过程。

  • 我有两个具有经度和纬度值的数据帧,我想从数据帧#2中提取值(例如数据帧#2的第三列),这些值与数据帧1的列匹配...例如,数据帧1有两列(、),数据帧2有三列(、和一些值)...我想在数据帧1中添加第三列,其中的值对应于两个数据帧中两列完全匹配的值,类似于和...在、不匹配的对中,我希望添加,以便第三列(我要添加到数据。帧1)的长度为=。我尝试了merge函数,但在将的两列与的列进行匹配时遇到了困

  • 当我控制台下面的两个数组是如何看 在两个数组中,349都是匹配的,匹配后应返回1。下面是我如何尝试的 它不匹配任何人都能给出解决方案!!!!

  • 我有两个数据帧DF1和DF2。 DF1: DF2: 我需要来自DF2的行数,其中EmploymentType='Employee',EmpStatus='Active',EmpStartDate 输出: 如何在不合并两个数据帧的情况下实现这一点? 我不能合并数据帧,因为没有公共键,而且因为我需要基于条件的行数,我不能在任何临时列上加入数据帧,因为我需要避免交叉连接。

  • 这里有两个数据帧: 预期数据帧: 以及实际数据帧: 现在两个数据帧之间的区别是: 我们使用的是except函数df1.except(df2),但问题是,它返回的是不同的整行。我们希望看到该行中哪些列不同(在本例中,“romin”和“romino”与“emp_name”不同)。我们在这方面遇到了巨大的困难,任何帮助都会很好。

  • 问题内容: 我想比较两个表并获得一组结果,其中查找值不匹配以及其他表中的键值缺失。第一部分在以下查询中可以正常工作: 但是,它不会返回t1和t2中其他表中没有对应ID的行(由于)。 如何在同一查询中实现两者? 问题答案: 删除子句的ID部分。在 足以表连接在一起。FULL OUTER JOIN将返回联接中的两个表,即使其中一个不匹配也是如此。 但是,该子句将结果限制为两个表中都存在的ID。这有效地