R-shapiro-wilk测试-循环
我想使用for循环对一组数据应用shapiro-wilk测试,并将p值保存在一个名为“shapiro.mat_mining”的矩阵中。 这是我尝试过但没有成功的东西R-shapiro-wilk测试-循环,r,loops,R,Loops,我想使用for循环对一组数据应用shapiro-wilk测试,并将p值保存在一个名为“shapiro.mat_mining”的矩阵中。 这是我尝试过但没有成功的东西 shapiro.mat_mining=matrix(c("Zr","Sr","Rb","Zn","Cu","Fe","Mn","V","Ti","Sc","Ca","K","S","Ba","Cs",numeric(15)),nrow=(2),byrow=TRUE) #Shapiro-wilk for (ii in c("Zr"
shapiro.mat_mining=matrix(c("Zr","Sr","Rb","Zn","Cu","Fe","Mn","V","Ti","Sc","Ca","K","S","Ba","Cs",numeric(15)),nrow=(2),byrow=TRUE)
#Shapiro-wilk
for (ii in c("Zr","Sr","Rb","Zn","Cu","Fe","Mn","V","Ti","Sc","Ca","K","S","Ba","Cs")){
shapiro.mat_mining[2,ii]=shapiro.test(VI9A_mining[,ii])$p.value
}
“Zr”、“Sr”、,。。都是向量。
VI9A_挖掘是一个包含向量Zr,Sr
运行此操作时,错误消息为:
"Error in `[<-`(`*tmp*`, 2, ii, value = 0.219114698955686) :
no 'dimnames' attribute for array"
“[首先,你不能在一个矩阵中混合字符串和数字,可以使用单独的矩阵(或者更确切地说是p值的数字向量)或者例如一个
数据框
。谢谢!似乎更好,但仍然不能运行。shapiro.pval_mining=c(数字(15))#shapiro wilk表示(ii)在c中(“Zr”、“Sr”、“Rb”、“Zn”、“Cu”、“Fe”、“Mn”、“V”、“Ti”、“Sc”、“Ca”、“K”)现在错误信息是:“错误:is.numeric(x)不正确”有什么想法吗?1.你不需要用c()
和numeric()
.2.是的,应该是数字的东西不是:is.numeric(x)不正确,试试shapiro.pval\u挖掘['Zr']
和'shapiro.pval_mining[1]`。