我有2个因素的数据框。像这样
Eyecolour Haircolour Points
<fctr> <fctr> <dbl>
1 brown blond 4
2 brown brunette -8
3 blue blond 2
4 blue brunette 3
5 green blond -5
6 green brunette 9
我希望每个人的金发和黑发之间的点数有所不同,Eyecolor
或只是从每个人的黑发中减去金发Eyecolor
。
我尝试使用dplyr
包,但是我在努力使代码正确。也与diff()
不喜欢负值。
使用数据
df <- read.table(text = c("
Eyecolour Haircolour Points
brown blond 4
brown brunette -8
blue blond 2
blue brunette 3
green blond -5
green brunette 9"), header = T)
你可以试试
library(dplyr)
library(tidyr)
df %>%
tidyr::spread(Haircolour, Points) %>%
dplyr::mutate(diff = blond - brunette)
结果
Eyecolour blond brunette diff
1 blue 2 3 -1
2 brown 4 -8 12
3 green -5 9 -14
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句