我尝试考虑两个不同列中的值,按组进行百分比计算。
我已经使用dplyr来对数据进行分组,然后进行数学运算。我输入的命令错误,因为所有组的结果都是相同的,我想我的代码仅显示了一个总百分比,而不是按组显示。
> x <- data.frame("code"=c("a","a","b","b","a","b"),"home" = c(1,1,1,1,1,1),
+ "trap" = c(0,1,0,1,0,1))
> x
code home trap
1 a 1 0
2 a 1 1
3 b 1 0
4 b 1 1
5 a 1 0
6 b 1 1
> x %>%
+ group_by(code) %>%
+ mutate(perc=(sum(trap)/sum(home)))
# A tibble: 6 x 4
# Groups: code [2]
code home trap perc
<fct> <dbl> <dbl> <dbl>
1 a 1 0 0.5
2 a 1 1 0.5
3 b 1 0 0.5
4 b 1 1 0.5
5 a 1 0 0.5
6 b 1 1 0.5
>
这个想法是获得关于家庭的陷阱权重(在同一组的所有行中都应该相同)
我要获取此数据框:
code home trap perc
<fct> <dbl> <dbl> <dbl>
1 a 1 0 0.333
2 a 1 1 0.333
3 b 1 0 0.666
4 b 1 1 0.666
5 a 1 0 0.333
6 b 1 1 0.666
>
答案 0 :(得分:0)
我们只需要List
mean
不同的值可能是由于x %>%
group_by(code) %>%
dplyr::mutate(perc = mean(trap))
# A tibble: 6 x 4
# Groups: code [2]
# code home trap perc
# <fct> <dbl> <dbl> <dbl>
#1 a 1 0 0.333
#2 a 1 1 0.333
#3 b 1 0 0.667
#4 b 1 1 0.667
#5 a 1 0 0.333
#6 b 1 1 0.667
被summarise
而不是plyr::summarise
所屏蔽(当两个软件包都装入全局环境时)。要解决此问题,请指定dplyr::summarise
或从仅加载dplyr::
的新会话开始
dplyr