在R中创建三维数组后Jupyter Lab显示异常的问题排查
三维数组在Jupyter Lab中未按多维格式输出的问题解决
你参考示例代码创建了2×2×2的三维数组,代码如下:
cptC = c(0.5, 0.5, 0.4, 0.6, 0.3, 0.7, 0.2, 0.8) dim(cptC) = c(2, 2, 2) dimnames(cptC) = list("C" = c("TRUE", "FALSE"), "A" = c("LOW", "HIGH"),"B" = c("GOOD", "BAD"))
执行后,class(cptC)返回array,typeof(cptC)返回double,dim(cptC)返回2 2 2,说明数组的结构完全正确。但在Jupyter Lab中直接输入cptC仅输出一维数值序列,而你预期是分维度的表格形式。
问题原因
这不是你的代码错误,是Jupyter Lab的R内核(IRkernel)与原生R控制台的输出逻辑差异:
- 原生R控制台会自动对多维数组进行格式化,输出分维度的表格;
- IRkernel为适配笔记本输出环境,默认对数组采用紧凑的一维显示方式,但数组本身的结构并未改变。
解决方法
方法1:显式调用
print()函数
在Jupyter Lab中用print(cptC)替代直接输入cptC,即可得到你预期的分维度表格输出:print(cptC)输出结果:
, , B = GOOD A C LOW HIGH TRUE 0.5 0.4 FALSE 0.5 0.6 , , B = BAD A C LOW HIGH TRUE 0.3 0.2 FALSE 0.7 0.8方法2:验证数组结构(可选)
若想确认数组的多维结构,可使用str(cptC)查看完整结构信息:str(cptC)输出会明确显示这是一个带维度名称的三维数组。
内容的提问来源于stack exchange,提问作者Jane Wayne
相关产品推荐
相关产品推荐

