我有以下数据:
Group Hormone Damage Score Greater
1 B control damaged 4 1
2 B control undamaged 4 1
3 B JA damaged 2 0
4 B JA undamaged 3 0
5 D control damaged 2 0
6 D control undamaged 1 0
7 D JA damaged 4 1
8 D JA undamaged 3 1
Run Code Online (Sandbox Code Playgroud)
我手动创建了"更大"列.从本质上讲,它问"在一个群体中,哪个受损的分数值更大?" 较大的值分配为1,较小的值为0.
如何为我创建一些代码?我尝试过以下dplyr代码,但没有成功:
df%>% group_by(Group) %>%
mutate(Greater1 = if_else(Score>Score, 0,1))
Run Code Online (Sandbox Code Playgroud)
如果已经提出这个问题,请告诉我,因为我找不到类似的问题.
如果你没有关系问题,你可以做到
library(tidyverse)
df %>%
group_by(Group, Damage) %>%
mutate(new = as.integer(Score == max(Score)))
Run Code Online (Sandbox Code Playgroud)
这使
Run Code Online (Sandbox Code Playgroud)# A tibble: 8 x 6 # Groups: Group, Damage [4] Group Hormone Damage Score Greater new <chr> <chr> <chr> <int> <int> <int> 1 B control damaged 4 1 1 2 B control undamaged 4 1 1 3 B JA damaged 2 0 0 4 B JA undamaged 3 0 0 5 D control damaged 2 0 0 6 D control undamaged 1 0 0 7 D JA damaged 4 1 1 8 D JA undamaged 3 1 1
| 归档时间: |
|
| 查看次数: |
52 次 |
| 最近记录: |