R报错问题解决 非数值型

#APdobs_NTPD.fn函数:计算NTPD观察值,长度为focalsp的长度
setwd("C:/Users/Administrator/Desktop")
focalsp<-read.csv("x.csv",header=T,fileEncoding="GBK")##目标个体的种名
pdmatrix<-read.csv("juzhen.csv",header=T,fileEncoding="GBK")#系统发育距离矩阵
sample<-read.csv("x1.csv",header=T,fileEncoding="GBK")#周围邻体的其他种类

APdobs_NTPD.fn =function(focalsp,pdmatrix,sample)
  #focalsp为目标个体的种名,pdmatrix为系统发育距离矩阵(标准化成0-1,参考Liza的课件),spinsample为周围邻体的其他种类
{
  pdtofocal.min =numeric()
  for(i in 1:length(focalsp))
  {
    spinsample=rownames(sample)[sample[,i]!=0]
    spinsample.abund=sample[,i][sample[,i]!=0]
    focalsp.pos=which(rownames(pdmatrix)==focalsp[i])
    spinsample.pos=match(spinsample,colnames(pdmatrix))
    pdtofocal=numeric()
    for(j in 1:length(spinsample.pos))
    {
      pdtofocal[j]=pdmatrix[focalsp.pos,spinsample.pos[j]]
    }
    pdtofocal.min[i]=min(pdtofocal)
  }
  return(pdtofocal.min)
}

##APdobs.fn函数:计算null model 平均值
APdobs.fun=function(focalsp,pdmatrix,sample)#focalsp为目标个体的种名,pdmatrix为系统发育距离矩阵(标准化成0-1,参考Liza的课件),spinsample为周围邻体的其他种类
{
  pdtofocal.mean.all=numeric()
  for(i in 1:length(focalsp))
  {
    spinsample=rownames(sample)[sample[,i]!=0]
    spinsample.abund=sample[,i][sample[,i]!=0]
    focalsp.pos=which(rownames(pdmatrix)==focalsp[i])
    spinsample.pos=match(spinsample,colnames(pdmatrix))
    pdtofocal=numeric()
    for(j in 1:length(spinsample.pos))
    {
      pdtofocal[j]=pdmatrix[focalsp.pos,spinsample.pos[j]]*spinsample.abund[j]
    }
    h<-which(names(spinsample.abund)==focalsp[i])
    if (length(h)>0){
      focal.abund=spinsample.abund[h]
      pdtofocal.mean=sum(pdtofocal)/(sum(spinsample.abund)-focal.abund) }
    if(length(h)==0){
      pdtofocal.mean=sum(pdtofocal)/sum(spinsample.abund) }
    pdtofocal.mean.all[i]=pdtofocal.mean 
  }
  return(pdtofocal.mean.all)
}
results <- APdobs.fun(focalsp,pdmatrix,sample)
write.table(results, "APdobs.fun")

报错

Error in pdmatrix[focalsp.pos, spinsample.pos[j]] * spinsample.abund[j] : 
  non-numeric argument to binary operator
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^