需要您的帮助来获得我的数据集中两列之间的期望差异。我的数据集示例如下:
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-A
和Col-B
,我想在第三列中绘制出差异。但是在尝试使用以下代码时:
MOP_NEW$Difference <- MOP_NEW$COl-A - MOP_NEW$Col-B
此代码还在为A
列提供输出时,分别考虑列B
和Difference
的空白值。我的意图是仅在Col-A
和Col-B
中分别存在值的情况下进行减法,并在NULL
中的任何一个都没有值的情况下返回空白(Col-A
)值或Col-B
。
希望我能够用简单的方式解释我的问题。
谢谢。
Abhishek
答案 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