使用summary()创建数据框报错:'dimnames'应用于非数组问题
解决R代码中
dimnames applied to non-array错误 你这段代码报错的核心原因是:summary(x)返回的不是普通命名向量,而是带有summaryDefault类的特殊对象。哪怕用unname()去掉名字,它的类属性依然保留。当你把这个特殊对象直接传入data.frame()时,R在处理维度名称时会因为它不是数组/矩阵类型而抛出错误。
修正方法很简单,只需把x_summary转换成普通数值型向量即可,修改后的代码如下:
x = c(3, 5, 3, 100, 5, -9, 10, 24) x_summary <- summary(x) x_names <- names(x_summary) # 转成数值型向量,同时移除名称 x_summary <- as.numeric(unname(x_summary)) xdf <- data.frame(Statistics = x_names, Value = x_summary)
也可以写成更简洁的版本:
x = c(3, 5, 3, 100, 5, -9, 10, 24) x_summary_vec <- as.vector(summary(x)) xdf <- data.frame(Statistics = names(summary(x)), Value = x_summary_vec)
内容的提问来源于stack exchange,提问作者OLGJ
相关产品推荐
相关产品推荐

