如何在R中可视化nycflights13关系数据集并获取公共变量?
nycflights13数据集相关需求解决方案
一、获取所有数据集的公共变量名
下面是一段简洁代码,可快速提取nycflights13包中所有数据集的公共变量:
library(nycflights13) # 提取各数据集的变量名列表 var_lists <- lapply(ls("package:nycflights13"), function(x) names(get(x))) # 计算所有列表的交集,即公共变量 common_variables <- Reduce(intersect, var_lists) # 输出结果 common_variables
运行后会发现结果为空——nycflights13的五个数据集没有全量公共变量,只有两两之间的连接变量(比如carrier连接flights和airlines,faa连接airports和flights等)。
二、实现关系型数据集的关联可视化
要复刻《R for Data Science》中展示的数据集关联图,推荐使用dm包(专门用于关系型数据建模与可视化),步骤如下:
- 加载依赖包并构建数据模型,定义主键与外键关系
- 调用可视化函数生成关联图
library(nycflights13) library(dm) # 创建数据模型并定义关联关系 flights_model <- dm(airlines, airports, flights, planes, weather) %>% # 为每个数据集设置主键 dm_add_pk(airlines, carrier) %>% dm_add_pk(airports, faa) %>% dm_add_pk(planes, tailnum) %>% dm_add_pk(weather, c(origin, time_hour)) %>% # 定义外键关联(连接不同数据集的变量) dm_add_fk(flights, carrier, airlines) %>% dm_add_fk(flights, origin, airports) %>% dm_add_fk(flights, dest, airports) %>% dm_add_fk(flights, tailnum, planes) %>% dm_add_fk(flights, c(origin, time_hour), weather) # 生成关联可视化图 dm_draw(flights_model)
运行后会生成一张清晰的实体关系图,展示五个数据集之间通过哪些变量相互关联,和书中的可视化效果一致。
内容的提问来源于stack exchange,提问作者Ramakrishna S
相关产品推荐
相关产品推荐

