0
我有一个由不同组构成的数据框,以及每个组的实际值和预测值。我想这些值提取的测试值:从数据框中提取组相关结果
library(dplyr)
d = data.frame(group = c(rep(5,x="a"),rep(5,x="b")), real = c(rep(2, x=1:5)), pred = c(2,1,3,4,5,1,2,4,3,5))
group real pred
1 a 1 2
2 a 2 1
3 a 3 3
4 a 4 4
5 a 5 5
6 b 1 1
7 b 2 2
8 b 3 4
9 b 4 3
10 b 5 5
d <- d %>% group_by(group) %>% mutate(sg = ifelse(real == 1 & real == pred, 1, 0))
d <- d %>% group_by(group) %>% mutate(sp = ifelse(real <= 3 & pred <= 3, 1, 0))
d %>% distinct(sg, sp)
sg sp group
1 0 1 a
2 0 0 a
3 1 1 b
4 0 1 b
5 0 0 b
但我想是这样的(每组仅1个结果)
sg sp group
1 0 1 a
3 1 1 b
我敢肯定dplyr,data.table或tidyr能做点什么,但我找不到方法。
非常感谢Erich,但是我想要的更多的是组内所有行的组合。我发现的唯一解决方案是做mutate(sg = sg || sg) –
我不确定你的意思是“组内所有行的组合”。 –