编写的函数如下:
DCSIS<-function(x,y)
{
x=as.matrix(x)
y=as.matrix(y)
n<-nrow(x);
p<-ncol(x);
m<-nrow(y);
if (m!=n)
print("Error:matrix of x and y do not match")
source("dcov.r") 这是自己编写的另一个函数,运行正常,没有问题
dcov3<-dcov(y,y);
w<-rep(0,p);
for (k in 1:p)
{ dcov1<-dcov(x[,k],y);
dcov2<-dcov(x[,k],x[,k]);
w[k]<-dcov1/sqrt(dcov2)/sqrt(dcov3);}
}直接调用函数得到w是NULL
n = 100;
p = 2000;
library("mvtnorm")
x<-rmvnorm(n,rep(0,p),diag(p));
beta<-c(1,1,1,rep(0,p-3));
y<-x%*%beta+rnorm(n);
source("DCSIS.r")
w<-DCSIS(x,y);