des*_*hen 2 r summarize tidyverse
我有以下数据:
\nlibrary(tidyverse)\n\ndf <- data.frame(id = c(1,1,1,2,2,2),\n x = rep(letters[1:2], each = 3),\n y = c(3,4,3,5,6,5),\n z = c(7,8,9,10,11,12))\nRun Code Online (Sandbox Code Playgroud)\nid我现在想通过一种获得z依赖值总和的方式来总结数据y。条件y本身取决于 的值x。
我以为我可以使用下面的代码,但这给了我所有输入 id 并且没有\xe2\x80\x98t 总结。结果是正确的,但我仍然希望每个 id 一行。
\ndf %>%\n group_by(id) %>%\n summarize(test = case_when(x == 'a' ~ sum(z[y == 3]),\n x == 'b' ~ sum(z[y == 5])))\n\n# A tibble: 6 x 2\n# Groups: id [2]\n id test\n <dbl> <dbl>\n1 1 16\n2 1 16\n3 1 16\n4 2 22\n5 2 22\n6 2 22\nRun Code Online (Sandbox Code Playgroud)\n下面的代码有效,但我不明白为什么它可以,而上面的代码却不能。
\ndf %>%\n group_by(id) %>%\n summarize(test = case_when(all(x == 'a') ~ sum(z[y == 3]),\n all(x == 'b') ~ sum(z[y == 5])))\n\n# A tibble: 2 x 2\n id test\n <dbl> <dbl>\n1 1 16\n2 2 22\nRun Code Online (Sandbox Code Playgroud)\n另外,有没有更直接的方法来进行总结?
\n