我在下面有一些 pandas 数据框形式的数据,其中列代表离散技能,行代表离散工作。仅当该技能是工作所需时才存在 1,否则为 0。
skill_1, skill_2,
job_1 1, 0,
job_2 0, 0,
job_3 1, 1,
Run Code Online (Sandbox Code Playgroud)
我想使用 networkx 创建一个图表来可视化工作和技能之间的关系。我尝试了两种方法,一种是针对数据框本身,nx.from_pandas_adjacency另一种是针对nx.from_numpy_matrix. 后一种方法应用于数据帧的 numpy 表示,其中删除了列名和行名。
无论哪种情况,都会引发错误,因为这是一个非方矩阵。这是有道理的,因为 networkx 可能将列和行解释为同一组节点。然而,这里的列和节点代表明显不同的东西。两项工作通过它们共享的技能连接起来,两种技能通过它们共享的工作连接起来,但任何两种技能或任何两个工作之间不存在直接优势。
鉴于我的行和列是不同的节点集,如何将数据导入到 networkx 中?
我刚刚将 R 更新到去年 12 月 12 日发布的 3.6.2 版“黑暗和暴风雨之夜”。我尝试安装以下软件包,但收到了相同的错误,“安装软件包 X 的退出状态为非零”。
这些包包括:broom、tidyr、tidyselect、vctrs 和 rlang。
我已经检查了 broom 的文档,但没有看到任何内容表明它仅受某些先前版本支持。对于上下文,今天下午我有 5.2.1 版,收到类似的错误并决定升级。
mac OSX Catalina 有没有可能是我的问题?我能做些什么来解决这个问题?
以下是按要求提供的错误的更多信息:
> library("tidyverse", lib.loc="/Library/Frameworks/R.framework/Versions/3.6/Resources/library")
Error: package or namespace load failed for ‘tidyverse’ in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]):
there is no package called ‘broom’
Run Code Online (Sandbox Code Playgroud)
编辑 2:根据评论中的要求对所有错误和消息进行详尽的打印输出:
> install.packages("tidyverse")
also installing the dependencies ‘colorspace’, ‘sys’, ‘ps’, ‘highr’, ‘markdown’, ‘farver’, ‘labeling’, ‘munsell’, ‘RColorBrewer’, ‘askpass’, ‘rematch’, ‘prettyunits’, ‘processx’, ‘knitr’, ‘yaml’, ‘htmltools’, ‘evaluate’, ‘base64enc’, ‘tinytex’, ‘xfun’, ‘DBI’, ‘tidyselect’, …Run Code Online (Sandbox Code Playgroud)