我在ddplyr中有一个数据帧(x),如下所示:
Location Type Method Observations
Outside Small A 1
Outside Large A 5
Inside Small A 20
Inside Large A 17
Outside Small B 24
Outside Large B 0
Inside Small B 0
Inside Large B 12
Outside Small C 6
Outside Large C 0
Inside Small C 1
Inside Large C 85
我要做的是创建一个新的数据框(y),其中按位置和方法列出了总观测值。像这样:
Location Method Total_Observations
Outside A 6
Inside A 37
Outside B 24
Inside B 12
Outside C 6
Inside C 86
基本上,我需要折叠Type,以便将所有这些观察值(针对每个位置和方法)加在一起并放在一列中。
到目前为止,我所拥有的是:
y <- x %>%
group_by(Location,Method) %>%
replace(is.na(.), 0) %>%
summarise(Total_Observations = sum(Observations))
问题在于此选项(以及我尝试过的所有其他选项)为我提供了行数的总和,而不是将行中的数字相加。有谁知道如何解决此问题?
答案 0 :(得分:-1)
根据所需的结果,脚本似乎已经完成了您想要的操作。将每个位置和方法的所有观测值相加。 (例如,对于 Outside 和 A ,有1个和5个观测值,您希望 Total_Observations 为6)Dplyr默认情况下通过第一栏。为了使结果看起来与上面的结果完全一样,我仅添加了“ arrange”语句。
library(dplyr)
y <- x %>%
group_by(Location,Method) %>%
replace(is.na(.), 0) %>%
summarise(Total_Observations = sum(Observations)) %>%
arrange(Method, desc(Location))