变换多个连续列(使用dplyr)。

问题描述 投票:0回答:1

我正在尝试学习dplyr包,到目前为止还不错。我在这里遇到了一个问题,它肯定与语法有关,因为它很容易解决。

我的数据框架如下图所示 此处

我想把第四列的第4个病区(从第4列到第17列)的所有订单按项目编号加起来。

栏目应该是这样的

項目# 總訂單數

1 2396

1 2396

2 445

2 445

  group_by(`ITEM`) %>%
  do({
  distinct(`DESCRIPTION`);
  mutate(Total = rowSums(.[,4:17]))
  })

This is definitely wrong as it says Description not found. Any help is appreciated

r dplyr
1个回答
0
投票

如果我们使用 rowSums它可以直接在 mutate. 另外,由于这是在每一行上做加法,所以在每一行上的 group_by不需要。 该 distinct.keep_all = TRUE 只返回'DESCRIPTION'列的不同行。

library(dplyr)
df1 %>%

      mutate(Total = rowSums(.[4:17], na.rm = TRUE)) %>%
      group_by(`ITEM#`) %>%
      mutate(Total = sum(Total, na.rm = TRUE))

注意:通过检查图片中的'DESCRIPTION',所有的元素都是唯一的,所以 distinct 不需要

© www.soinside.com 2019 - 2024. All rights reserved.