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

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

仲孙思源
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”不同)。我们在这方面遇到了巨大的困难,任何帮助都会很好。

  • 我有一个包含100,000行(人)和500列(概率)的数据集,我想用测试概率扫描各列,以找到大于和最接近测试值的列标题(a、b或c ),并将标题记录在新列中。 以数据表为例: 新列将记录“a”(0.1 我最初做它作为一个矩阵,而不是data.table.下面的代码不会工作,但给出了一个想法,它是如何运作的 如何跨 data.table 中的列执行此匹配。我认为我需要使用 来自 的查询。但不确定如何