我注意到,在管道中使用dplyr的功能顺序会影响结果。例如:
iris %>%
group_by(Species) %>%
mutate(Sum = sum(Sepal.Length))
产生的结果与此不同:
iris %>%
mutate(Sum = sum(Sepal.Length)) %>%
group_by(Species)
任何人都可以解释其原因,如果必须定义它们的任何特定顺序,请提及相同的原因。谢谢
仅供参考:iris是R中的内置数据集,请使用数据(iris)进行加载。我试图添加一个新列,每个物种的萼片长度总和。
是的,顺序很重要。
该管道等效于:
iris<-group_by(iris, Species) iris<-mutate(iris, Sum = sum(Sepal.Length))
如果更改顺序,则更改结果。如果您首先按物种分组,那么您将获得按物种求和的结果(我想这就是您想要的)。但是,如果在总和之后按物种分组,则该总和将对应于所有物种的萼片长度的总和。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句