R 比较两个数据帧的值
我正在R 比较两个数据帧的值,r,kable,kableextra,flextable,officer,R,Kable,Kableextra,Flextable,Officer,我正在R中构建犯罪报告,并比较两个独立的数据帧,一个来自今年,另一个来自上一年。两者的数据结构相同。有没有一种方法可以根据前一年犯下的罪行来给flextable中的值着色?例如,如果2020年1月的凶杀案比2019年1月多,那么将该值涂成红色。如果2020年1月的入室盗窃案少于2019年1月,则将该值涂成绿色,以此类推,每年的每个月以及每一次犯罪。以下是数据示例: df2019 <- data.frame(crime = c("assault", "homic
R
中构建犯罪报告,并比较两个独立的数据帧,一个来自今年,另一个来自上一年。两者的数据结构相同。有没有一种方法可以根据前一年犯下的罪行来给flextable中的值着色?例如,如果2020年1月的凶杀案比2019年1月多,那么将该值涂成红色。如果2020年1月的入室盗窃案少于2019年1月,则将该值涂成绿色,以此类推,每年的每个月以及每一次犯罪。以下是数据示例:
df2019 <- data.frame(crime = c("assault", "homicide", "burglary"),
Jan = c(5, 2, 7),
Feb = c(2, 4, 0),
Mar = c(1, 2, 1))
df2020 <- data.frame(crime = c("assault", "homicide", "burglary"),
Jan = c(1, 2, 5),
Feb = c(1, 3, 0),
Mar = c(2, 2, 1))
df2019这里有一个解决方案:
library(flextable)
library(magrittr)
df2019 <- data.frame(crime = c("assault", "homicide", "burglary"),
Jan = c(5, 2, 7),
Feb = c(2, 4, 0),
Mar = c(1, 2, 1))
df2020 <- data.frame(crime = c("assault", "homicide", "burglary"),
Jan = c(1, 2, 5),
Feb = c(1, 3, 0),
Mar = c(2, 2, 1))
colors <- unlist(df2020[-1] - df2019[-1]) %>%
cut(breaks = c(-Inf, -.1, 0.1, Inf),
labels = c("green", "transparent", "red")) %>%
as.character()
flextable(df2020) %>%
bg(j = ~ . -crime, bg = colors) %>%
theme_vanilla() %>%
autofit() %>% save_as_pptx(path = "test.pptx")
库(flextable)
图书馆(magrittr)
df2019%
bg(j=~-犯罪,bg=颜色)%>%
主题\u香草()%>%
autofit()%%>%另存为\u pptx(path=“test.pptx”)
谢谢您的快速回复,大卫!我复制并粘贴了您的解决方案,虽然它在flextable中很好地编译了数据,但颜色对我来说不起作用。知道为什么吗?没有。你是用PowerPoint打开文件的吗(没有LibreOffice或其他富文本编辑器)?是的,我是用PowerPoint打开的。flextable与您的相同,只是没有颜色。我复制并粘贴了您的解决方案,所以我想知道为什么会发生这种情况。看起来颜色没有显示的原因是主题
代码行。当我把它拿出来的时候,它运行得非常好!非常感谢你,大卫!我改变了主题,我可能已经从白色背景改为透明背景,用最新的版本,你应该没有问题