首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用mshapiro.test时出错:"U[]不是列数(样本大小)在3到5000之间的矩阵“

使用mshapiro.test时出错:"U[]不是列数(样本大小)在3到5000之间的矩阵“
EN

Stack Overflow用户
提问于 2011-07-28 05:10:38
回答 2查看 4K关注 0票数 0

我正在尝试使用mvnormtest软件包中的mshapiro.test对来自五个站点的一些密度数据进行正态性的多变量测试。每个站点都是一列,密度在下面。它是5列5行,顶行作为标题(站点名称)。下面是我加载数据的方式:

代码语言:javascript
运行
复制
datafilename="/Users/megsiesiple/Documents/Lisa/lisadensities.csv"
data.nc5=read.csv(datafilename,header=T)
attach(data.nc5)` 

数据如下所示:

代码语言:javascript
运行
复制
       B07      B08      B09      B10        M  
1 72571.43 17714.29  3142.86 22571.43  8000.00
2 44571.43 46857.14 49142.86 16857.14  7142.86
3 54571.43 44000.00 26571.43  6571.43 17714.29
4 57714.29 38857.14 32571.43  2000.00  5428.57

当我为data.nc5调用mshapiro.test()时,我得到这样的消息:Error in mshapiro.test(data.nc5) : U[] is not a matrix with number of columns (sample size) between 3 and 5000

我知道要使用mshapiro.test()执行夏皮罗-威尔克测试,数据必须是一个数字矩阵,列数在3到5000之间。但是,即使我使.csv成为一个只包含数字的矩阵(即,当我省略站点名称时),我仍然会得到错误。我需要以不同的方式设置矩阵吗?其他人也有这个问题吗?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-28 05:20:54

如果您通过read.csv()将数字矩阵读入R,使用的代码与您所显示的代码类似,那么它将作为数据帧读入,而这不是矩阵。

试一试

代码语言:javascript
运行
复制
mat <- data.matrix(data.nc5)
mshapiro.test(mat)

(没有测试,因为你没有给出一个可重复的例子,而且现在在我的时区已经晚了;-)

票数 2
EN

Stack Overflow用户

发布于 2018-12-06 18:48:15

您需要在矩阵中转置数据,以便您的变量在行中,观察值在列中。该命令将为:

M <- t(data.nc51:4,1:5)

mshapiro.test(M)

它对我来说是这样的。导入过程中需要识别第一行中的标签,因此数据将从第一行开始,否则会出现缺失值错误。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6851294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档