使用ggplot2对比中美历年人口数据 无需pivot_wider的实现方法咨询
方案合理性说明
你当前的实现逻辑完全通顺,可以输出符合预期的中美人口对比散点图,属于合理的实现方案,同时确实存在不需要调用pivot_wider的更简洁写法。
无需转换宽表的实现代码
核心思路是直接按年份分组提取两国的人口数值,省去宽表转换和重命名两个步骤,代码如下:
library(tidyverse) population %>% filter(country %in% c("United States of America", "China")) %>% group_by(year) %>% summarise(China = population[country == "China"], USA = population[country == "United States of America"]) %>% ggplot(aes(x = China, y = USA)) + geom_point(aes(col = year))
两种方案对比
- 你当前的
pivot_wider方案:逻辑直观易懂,适合需要复用宽格式数据集做后续分析的场景,仅做可视化的话代码冗余度稍高。 - 分组汇总方案:代码更短,执行效率略高于宽表转换方案,尤其在数据量级较大时优势更明显,仅做可视化的优先选这个写法。
两种方案的最终输出结果完全一致,没有对错之分,可根据实际使用场景选择。
内容的提问来源于stack exchange,提问作者Midoux
相关产品推荐
相关产品推荐

