2列之间的差异

时间:2020-03-23 05:07:25

标签: r

需要您的帮助来获得我的数据集中两列之间的期望差异。我的数据集示例如下:

User    COL-A   COL-B   Difference
10050   1360    1330    30
10051   1160    1150    10
10052   1150    
10053   1175    1170    5
10054   1175        
10055   1175        
10056   1175    1170    5
10057   1175    1170    5
10058   1170    
10059   1040    1030    10
10060   1060    
10061   1080    1060    20
10062   1100    
10063   1130    1100    30
10064   1130    1100    30
10065   1100    
10066   1130    1100    30
10067   1130    1100    30
10068   1100    
10069   1130    1100    30
10070   1130    1100    30
10071   1130        
10072   1130    1100    30
10073   1130        
10074   1130    1100    30
10075   1130    1100    30
10076   1130    1100    30
10077   1130    1100    30
10078   1130    1100    30
10079   1130    

我的数据集有两个主要的列Col-ACol-B,我想在第三列中绘制出差异。但是在尝试使用以下代码时:

MOP_NEW$Difference <- MOP_NEW$COl-A - MOP_NEW$Col-B

此代码还在为A列提供输出时,分别考虑列BDifference的空白值。我的意图是仅在Col-ACol-B中分别存在值的情况下进行减法,并在NULL中的任何一个都没有值的情况下返回空白(Col-A)值或Col-B

希望我能够用简单的方式解释我的问题。

谢谢。

Abhishek

2 个答案:

答案 0 :(得分:0)

假设您有一个数据框

df <- data.frame(COL_A = c(10050,1360, 1330, 30, 10051, 1160, 1150, 10, 10052, 1150,
                           10053, 1175, 1170, 5, 10054, 1175),
                 COL_B = c(10052,1364, 1335, 10, 10021, 1130, 1110, 50, 10012, 1110,
                           10043, 1125, 1130, 2, 10034, 1145))

df$difference <- df$COL_A - df$COL_B

输出:

  COL_A COL_B   difference
1  10050 10052        -2
2   1360  1364        -4
3   1330  1335        -5
4     30    10        20
5  10051 10021        30
6   1160  1130        30
7   1150  1110        40
8     10    50       -40
9  10052 10012        40
10  1150  1110        40
11 10053 10043        10
12  1175  1125        50
13  1170  1130        40
14     5     2         3
15 10054 10034        20
16  1175  1145        30

答案 1 :(得分:0)

这是基本的R方式。它检查每一行中是否至少有一个非ios_application。如果一个且只有一个值为NA,则会为其分配零。然后计算差异NA

COL_A - COL_B

数据。

MOP_NEW$Difference <- apply(MOP_NEW[2:3], 1, function(x){
  na <- is.na(x)
  if(all(na)){
    NA
  }else{
    x[na] <- 0
    x[1] - x[2]
  }
})
MOP_NEW
相关问题