【发布时间】:2020-04-17 03:47:08
【问题描述】:
我正在尝试按另一列对列值分组求和,我需要保留 NA 值,我不应该用零替换值,因为基于总和,如果总和为 NA,我必须给出排名,排名应该为空。
以下是理解问题的示例
column1column2column3
10 英镑
b gb 不适用
c gb 不适用
d gb 4
e Hs 81
b Hs 不适用
c Hs 2
不适用的路
x Rd NA
z Rd NA
我必须按 column2 对 column3 值进行求和,并且在进行求和时,我不应该考虑 NA 值并将该组的其他值相加,我不应该删除或用零替换 NA 值。基于这个总和,如果总和为 NA(参考组 Rd),我必须给出排名,那么将没有排名。我可以用零替换 NA 值,但我必须在 sum 之后给出排名,如果 sum 为 NA,排名将为空(如果是上述数据中的组 Rd)。对于 gb 组,总和值为 14,Hs 组总和值为 83,Rd 组总和值为 NA,在这种情况下,该组将没有排名。
下面是我试过的代码sn-p
df %>% group_by_at(column2) %>% summarise(sum = sum(column3, na.rm = TRUE))
上面的代码通过将所有 NA 替换为零来求和值,但我不想替换。我需要 NA 给予排名。你能提供任何解决方案吗?
预期输出:
column2 column3 排名
GB 14 2
Hs 83 1
Rd NA 无等级
【问题讨论】:
-
预期输出应该类似于 column2 column3 rank gb 14 2 Hs 83 1 Rd NA No Rank
-
你能检查一下我的解决方案吗
标签: r