全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 经管百科 爱问频道
751 4
2018-12-06
悬赏 1000 个论坛币 已解决
琢磨了好久,实在解决不了,向各位大神求教,问题如下:我有一个调查样圆,面积是1000平米(半径约17.8米),调查了样圆里所有的树木,记录了每个树木到圆心的距离和偏角(树木到圆心的连线与正北方向的夹角),然后我要在这个1000平米样圆里随机抽10个100平米的样圆,返回每个100平米样圆里的所有树木信息,请问在R里如何实现,谢谢!!非常感谢!!
sampledata.xlsx
大小:(13.55 KB)

 马上下载



最佳答案

atijinmao 查看完整内容

randsample.fn=function(data,area1,area2,N){ #area1 is the area of observed plot, area2 is the area of expected plot r1=sqrt(area1/pi) r2=sqrt(area2/pi) expplot=data.frame() for (j in 1:N){ R=runif(1,0,r1-r2) theta=runif(1,0,360) xa=R*sin(theta*pi/180) ya=R*cos(theta*pi/180) expdata=data[sqrt((data$x-xa)^2+(data$y-ya)^2)
二维码

扫码加我 拉你入群

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

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

全部回复
2018-12-6 14:55:30
randsample.fn=function(data,area1,area2,N){   #area1 is the area of observed plot, area2 is the area of expected plot
  
  r1=sqrt(area1/pi)
r2=sqrt(area2/pi)
expplot=data.frame()

  for (j in 1:N){

R=runif(1,0,r1-r2)
    theta=runif(1,0,360)
    xa=R*sin(theta*pi/180)
ya=R*cos(theta*pi/180)
expdata=data[sqrt((data$x-xa)^2+(data$y-ya)^2)<r2,]
    lable=paste("plot",j,sep="")
    expdata[,6]=lable
    colnames(expdata)[6]="plot"
    expplot=rbind(expplot,expdata)
  }
  return(expplot)
}

二维码

扫码加我 拉你入群

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

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

2018-12-6 15:13:55
或者大家有没有什么函数或者思路可以帮助确定大圆里每个树的位置{:2_26:}
二维码

扫码加我 拉你入群

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

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

2018-12-6 22:01:37
走过路过求分享相关经验啊{:2_35:}
二维码

扫码加我 拉你入群

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

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

2018-12-17 13:09:21
atijinmao 发表于 2018-12-6 14:55
randsample.fn=function(data,area1,area2,N){   #area1 is the area of observed plot, area2 is the area ...
太棒了!!!感激涕零
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群