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) –
我不確定你的意思是「組內所有行的組合」。 –