如何计算R中数据框中两行(字符串)之间的差异

时间:2017-02-22 11:14:12

标签: r

我有以下数据框

ClientID          month            test
 ASD               Sep        Auto:2,Finance:1
 ASD               Oct        Finance:2
 FGH               Sep        Auto:1,Finance:2
 FGH               Oct        Oil:2

以上数据框我从以下代码

获得
df %>% 
  group_by(client_id, month, Sector) %>%
  tally() %>%
  group_by(client_id, month) %>%
  summarise(test = toString(paste(Sector, n, sep=":")))

现在,我想在客户端计算的是,他的行业从sep到oct的变化。在sep客户端中持有2个来自汽车行业的工具但是在10月他已经减少到1明智。或者他增加了任何在Sepember月没有的新部门。在上述数据中,ASD有2台来自Auto的仪器和1台来自财务的仪器,10月他在财务方面增加了1台仪器,但是从Auto销售了2台仪器。如果他将仪器数量从sep减少到oct那么数字应该是负数。

所需的输出将是

ClientID       month          test                  Output
  ASD           Sep      Auto:2,Finance:1.            NA
  ASD           Oct      Finance:2                    Finance:1,Auto:NILL
  FGH           Sep      Auto:1,Finance:2             NA
  FGH           Oct      Oil:2                        Oil:2,Finance:2,Auto:1

数据

df <- data.frame(ClientID = rep(c("ASD.", "DFG."), each = 5),
      month = rep(c("Sep", "Oct" ) , c(3,2)),
      Sector = c("Auto", "Auto", "Finance", "Finance", "Finance", 
      "Auto", "Finance", "Finance", "Oil", "Oil"),
      stringsAsFactors=FALSE) 

我们可以在上面的代码中实现这个吗?

0 个答案:

没有答案