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

通过匹配数据帧之间的两个值在数据帧中创建新列

梁华清
2023-03-14

基本上,它应该在步骤中找到指标为43且步骤=1的行,然后将该值放在新列中,在这种情况下,它将是“Gross value Added”。任何帮助都将非常感谢!

共有1个答案

史和泰
2023-03-14

如果我的解释是正确的,把它看作一个连接而不是变异可能会让它变得更容易

我创建了虚拟数据,希望这将使我所做的假设变得清晰。数据

所以我们有两张桌子。在这两者中,我们都有IndicatorID和step。然后在step dataframe中,我们有一个var'stepname',我们希望能够通过在IndicatorID和step上进行匹配,在第三个名为step1的表中使用这些值。

step <- tibble(
        IndicatorID = c(41, 42, 43, 44, 45, 46), 
        Step = c(1, 2, 1, 4, 5, 6), 
        StepName = c('left', 'right', 'up', 'down', 'under', 'over'))


iData <- tibble(
        IndicatorID = c(seq(from = 1, to = 43)), 
        InputA = runif(43), 
        InputB = runif(43)) %>%
        mutate(iresult = InputA + InputB)

Step1 <- iData %>%
        filter(IndicatorID == 43) %>%
        mutate(Step = 1) %>%
        left_join(step, by = c('IndicatorID', 'Step'))

IndicatorID InputA InputB iresult  Step StepName
        <dbl>  <dbl>  <dbl>   <dbl> <dbl> <chr>   
          43  0.773  0.124   0.898     1 up   


### Example where we select only the columns from step 
### that we are interested in keeping, without doing a semi_join

Step1 <- iData %>%
        filter(IndicatorID == 43) %>%
        mutate(Step = 1) %>%
        left_join(step %>%
             select(IndicatorID, Step, StepName), 
             by = c('IndicatorID', 'Step'))

 类似资料:
  • 我有两个具有多列的数据帧。 我想比较df1['id']和df2['id'],并返回一个新的df,其中列['correct_id']具有匹配值。例子: df1: df2 这是我的代码: 我得到的结果是: 预期输出: 我该怎么解决这个问题拜托

  • 我在dataframe中总共有100列。我试图比较两个数据帧,并找到列名不匹配的记录。我得到了以下代码的输出,但当我运行100列的代码时,作业被中止。 我正在为SCD类型2增量进程错误查找执行此操作。 请建议任何其他方式。

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

  • 我正在改装一些现有代码以使用Spark。我有多个包含不同数据集的数据帧。在转换主数据帧(或主数据集)时,我需要使用来自其他数据帧的数据来完成转换。我还有一种情况(至少在当前结构中),我需要在另一个数据帧的转换函数中创建新的数据帧。 我试图确定以下内容: 我可以在另一个数据帧的转换函数中访问数据帧吗 关于如何处理这种情况的指针将非常有帮助。

  • 这是一个有点复杂的解释,所以我希望它足够清楚,但如果不是,我会尝试和扩展更多。 所以我有一个这样的数据帧:

  • 我有两个熊猫数据框 步骤2:对于flag=1的行,AA_new将计算为var1(来自df2)*组“A”和val“AA”的df1的'cal1'值*组“A”和val“AA”的df1的'cal2'值,类似地,AB_new将计算为var1(来自df2)*组“A”和val“AB”的df1的'cal1'值*组“A”和val“AB”的df1的'cal2'值 我的预期输出如下所示: 以下基于其他stackflow