在下面的示例数据框中,我想从类别“A”、“B”和“C”条目中的收入(同一产品)中减去类别“D”中条目的“收入”。实际的数据框有一堆其他列,我需要多次执行此操作,因此使用pivot_wider操作有点低效。有没有快速的方法来做到这一点?
product category revenue
0001 A 78
0001 B 98
0001 C 103
0001 D 95
0002 A 81
: : :
我想要示例数据框的结果:
product category revenue
0001 A -7
0001 B 3
0001 C 8
0001 D 95
: : :
到目前为止我一直在做什么:
df = df %>% pivot_wider(names_from = category, values_from = revenue)
df[,2:4] = df[,2:4] - df$D %>% as.data.frame()
df = df %>% pivot_longer(2:5, names_to = 'category', values_to = 'revenue')
有更好的方法吗?
使用此数据: