全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
17032 5
2013-12-24
distance.distinguish<-function
(x,class,newx = NULL){
if (is.factor(class)== FALSE){
class<-factor(class)
}
if (is.null(newx) == TRUE)
  newx<-x
else
  newx<-rbind(x,newx)
if (is.vector(newx) == TRUE)
    newx<-t(as.matrix(newx))
else if (is.matrix(newx)!= TRUE)
   newx<-as.matrix(newx)
if (is.matrix(x)!= TURE)
   x<-as.matrix(x)
   nx<-nrow(newx)
   n<-rep("n",nx-nrow(x))
  blong<-matrix(rep(0,2*nx),nrow=2)
g<-length(levels(class))
mu<-matrix(0,nrow=g,ncol=ncol(x))
for (i in 1:g)
mu[i,]<-colMeans(x[class==i,])
#计算各个总体的均值
D<-matrix(0,nrow=g,ncol=nx)
for (i in 1:g)
D[i,]<-mahalanis(newx,mu[i,],var(x[class==i,]))
#计算newx中每个样本与第i个总体的马氏距离,保存在行向量D[i,]中
for (j in 1:nx){
dmin<-Inf
for (i in 1:g)
if (D[i,j]<dmin){
    dmin<-D[i,j];
     blong[1,j]<-dmin;
     blong[2,j]<-i
}
}
data.frame(G=c(class,n),distance=blong[1,],blong=blong[2,])
}
###R命令
x<-read.table("C:\\Users\\QJH\\Desktop\\第四次作业\\data.exercise.7.1.txt",header=T);x
x1<-x[,3:4];x1
x2<-x[,1];x2
newx<-c(5.5,245)
source("C:\\Users\\QJH\\Desktop\\第四次作业\\distance.distinguish.R")
distance.distinguish(x1,x2,newx)



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-12-25 18:47:27
第4个if语句。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-12-25 20:52:15
TURE -> TRUE
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-12-26 00:06:13
qoiqpwqr 发表于 2013-12-25 20:52
TURE -> TRUE
mu[i,]<-colMeans(x[class==i,])这句有没有问题,运行发现说x不是数组
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-12-27 16:46:58
qianchess 发表于 2013-12-26 00:06
mu
你拼错单词了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-12-27 23:32:44
qianchess 发表于 2013-12-26 00:06
mu
qoiqpwqr的意思是你的单词写错了,大哥。应该是TRUE,不是TURE。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群