【发布时间】:2018-10-16 22:59:43
【问题描述】:
我已经创建了这个函数:
vlw=function(x,y)
{
for(i in 0:20){
if((i>=1)&(i<=4)|(i>=6)&(i<=9)|(i>=11)&(i<=14)|(i>=16)&(i<=19))
{
next()
}
print(ifelse((x<i)&(y<i)|(x>(i+5))&(y>(i+5)),0,ifelse((x<i)&(y<(i+5)),(y-i)/5,ifelse((x<(i+5))&(y>(i+5)),(i+5-x)/5,ifelse((x>i)&(y<(i+5)),(y-x)/5,1)))))
}
}
如果我使用这个输入:
iv=c(-1,-2,4,9,10,5,-1)
fv=c(3,-1,6,10,11,10,8)
我的结果是:
[1] 0.6 0.0 0.2 0.0 0.0 1.0 1.2
[1] 0.0 0.0 0.2 1.0 1.0 1.0 0.6
[1] 0 0 0 0 1 0 0
[1] 0 0 0 0 0 0 0
[1] 0 0 0 0 0 0 0
问题是我想根据这个结果创建一个矩阵,但是当我输入:
exp4=as.matrix(vlw(iv,fv),5,7)
我读到了这个错误:
数组中的错误(x, c(length(x), 1L), if (!is.null(names(x))) list(names(x), : 'data' 必须是向量类型,为 'NULL
你知道我该如何解决吗?
【问题讨论】: