楼主: 姬妓叽
588 0

[问答] 如何把function的返回值用data.frame输出 [推广有奖]

  • 0关注
  • 0粉丝

小学生

0%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
30 点
帖子
2
精华
0
在线时间
2 小时
注册时间
2023-2-4
最后登录
2023-2-17

楼主
姬妓叽 发表于 2023-2-4 07:13:27 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
focalsp<-read.csv("x1.csv",header=T,fileEncoding="GBK")
pdmatrix<-read.csv("juzhen.csv",header=T,fileEncoding="GBK")
sample<-read.csv("x11.csv",header=T,fileEncoding="GBK")
APdobs_NTPD.fn =function(focalsp,pdmatrix,sample)
{
  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)
}

#
#write.csv(APdobs_NTPD.fn,'y1.csv')
##APdobs.fn函数:计算null model 平均值
{
  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)
}

APdnull.fun=function(focalsp,sample,nsim,phylo)#phylo为系统发育树
{
  require(picante)
  pdtofocal.mean.all.null=matrix(nrow=length(focalsp),ncol=nsim)
  for(j in 1:nsim)
  {
    phylo.tem <- tipShuffle(phylo)
    pdmatrix.tem=cophenetic(phylo.tem)
    pdmatrix.tem=pdmatrix.tem/(-max(pdmatrix.tem))+1
    pdtofocal.mean.all=APdobs.fun(focalsp=focalsp,pdmatrix=pdmatrix.tem,sample=sample)
    pdtofocal.mean.all.null[,j]=pdtofocal.mean.all
  }
  return(pdtofocal.mean.all.null)
}


APd.allfocalsp.fun=function(focalsp=focalsp,pdmatrix=pdmatrix,sample,nsim=999,phylo=phylo.xtbg)
{
  pdtofocal.min.all= APdobs_NTPD.fn (focalsp=focalsp,pdmatrix=pdmatrix, sample=sample)

  pdtofocal.mean.null.all=APdnull.fun(focalsp=focalsp,sample=sample,nsim=nsim,phylo=phylo)
  NTPD =numeric()

  for(i in 1:length(focalsp))
  {
    APdnull.mean=mean(pdtofocal.mean.null.all[i,])
    APdnull.sd=sd(pdtofocal.mean.null.all[i,])
    NTPD[i]=(pdtofocal.min.all[i]-APdnull.mean)/APdnull.sd
  }
  return(NTPD)
}


###############################################
##THESE TOP TWO FUNCTIONS ARE NEEDED TO MAKE ##
######THE CIRCLE SAMPLE FILES FOR APd calculation ####
####COPY AND PASTE THESE TWO FUNCTIONS INTO R##

二维码

扫码加我 拉你入群

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

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

关键词:function Frame Fram Data CTI

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

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