楼主: 美楠
5002 3

[问答] 做判别分析时,如何引用discriminiant.distance.R [推广有奖]

  • 1关注
  • 0粉丝

大专生

50%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
472 点
帖子
38
精华
0
在线时间
35 小时
注册时间
2015-4-29
最后登录
2015-6-26

楼主
美楠 发表于 2015-4-30 09:58:08 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
r语言初学者,最近在看判别分析,看书上的例题,用的source(“discriminiant.distance.R”),这个题之前讲了一堆这个的程序,是不是把

discriminiant.distance.R的程序写在一个r脚本文件里面,我放在了c盘,然后在r命令框里面写的

source('C:/discriminiant.distance.R'),出现了错误,Error in file(filename, "r", encoding = encoding) :   cannot open the connectionIn addition: Warning message:In file(filename, "r", encoding = encoding) :  cannot open file 'C:/discriminiant.distance.R': No such file or directory,请问这个是怎么回事,哪块出问题了,以下是粘贴书上的程序放在了一个r文件里面,然后再放在了c盘

discriminiant.distance <- function

(TrnX1, TrnX2, TstX = NULL, var.equal = FALSE){

if (is.null(TstX) == TRUE) TstX <- rbind(TrnX1,TrnX2)

if (is.vector(TstX) == TRUE) TstX <- t(as.matrix(TstX))

else if (is.matrix(TstX) != TRUE)

TstX <- as.matrix(TstX)

if (is.matrix(TrnX1) != TRUE) TrnX1 <- as.matrix(TrnX1)

if (is.matrix(TrnX2) != TRUE) TrnX2 <- as.matrix(TrnX2)

nx <- nrow(TstX)

blong <- matrix(rep(0, nx), nrow=1, byrow=TRUE,

dimnames=list("blong", 1:nx))

mu1 <- colMeans(TrnX1); mu2 <- colMeans(TrnX2)

if (var.equal == TRUE || var.equal == T){

S <- var(rbind(TrnX1,TrnX2))

w <- mahalanobis(TstX, mu2, S)

- mahalanobis(TstX, mu1, S)

}

else{

S1 < -var(TrnX1); S2 <- var(TrnX2)

w <- mahalanobis(TstX, mu2, S2)

- mahalanobis(TstX, mu1, S1)

}

for (i in 1:nx){

if (w > 0)

blong <- 1

else

blong <- 2

}

blong

} 6tOo__O>

二维码

扫码加我 拉你入群

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

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

关键词:Distance discrim stance Mini 判别分析 判别分析时出错

沙发
Mr钟 发表于 2015-4-30 10:32:36
不用,你直接那你的代码放在你的R起始路径里面,source("*.R") 就可以了

藤椅
美楠 发表于 2015-4-30 20:48:47
能不能说的具体点,谢谢了,

板凳
美楠 发表于 2015-4-30 21:57:09
这个是引用进去了,但是为什么得出来的判别结果都是一样的,或者是出现了下面的问题,
discriminiant.distance(x1,x2,var.equal=TRUE)
      1 2 3 4 5 6 7 8 9 10 11 12 13 14
blong 1 1 1 1 1 1 1 1 1  1  1  1  1  1

> discriminiant.distance(x1,x2,rate=8/6,var.equal=TRUE)
Error in discriminiant.distance(x1, x2, rate = 8/6, var.equal = TRUE) :
  unused argument (rate = 8/6)

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-10 20:54