基本上,它应该在步骤中找到指标为43且步骤=1的行,然后将该值放在新列中,在这种情况下,它将是“Gross value Added”。任何帮助都将非常感谢!
如果我的解释是正确的,把它看作一个连接而不是变异可能会让它变得更容易
我创建了虚拟数据,希望这将使我所做的假设变得清晰。数据。
所以我们有两张桌子。在这两者中,我们都有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