首页 > 解决方案 > 将列值复制到新列

问题描述

我有一个数据框 BLUP,有

Location  Value
  A          3
  B          5
  C          10

我希望输出看起来像

Location   Value1  Location2   Value2   Diff(Value2-Value1)
A             3        A          3          0
A             3        B          5          2
A             3        C          10         7
B             5        A          3         -2
B             5        B          5          0
B             5        C          10         5
C             10       A          3         -7
C             10       B          5         -5
C             10       C          10         0

我不确定如何在 R 中为更大的数据框创建这个输出表。任何建议都将不胜感激,因为我是 R 新手。

标签: r

解决方案


这是你需要的吗?如果您已经拥有除最后一列之外的第一列,只需执行

mutate(Diff=Value2-Value1)

否则使用添加列mutate?cbind你也可以看看

    #Location1 and Value1 should already be in your data. 


library(tidyverse)
        BLUP %>% 
          rename(Location2=Location1,Value2=Value1) %>% 

          mutate(Location1=rep("A",3),Value1=rep(3,3),Diff=Value2-Value1) %>% 
          select(contains("1"),everything())

推荐阅读