全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
16934 11
2011-01-28
比如我有以下数据:
X   Y
3   5
6   8
4   2
7   9
1   0
我想随机抽3对(x,y)出来,抽10次,请问怎么用R实现?谢谢
二维码

扫码加我 拉你入群

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

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

全部回复
2011-1-28 03:27:26
sim<-10000
xy<-matrix(c(3,6,4,7,1,5,8,2,9,0),5,2)
sample<-matrix(data=NA,nrow=sim,ncol=2)
index<-floor(runif(sim, min=1, max=5.9999999))
for (i in 1:sim){sample[i,1]<-xy[index[i],1]; sample[i,2]<-xy[index[i],2]}
二维码

扫码加我 拉你入群

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

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

2011-1-28 04:58:46
假设你的XY 如上表所示排成一个矩阵XY
SampXY<-XY[sample(nrow(XY),3),]
二维码

扫码加我 拉你入群

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

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

2011-1-30 00:23:04
ltx5151 发表于 2011-1-28 04:58
假设你的XY 如上表所示排成一个矩阵XY
SampXY<-XY[sample(nrow(XY),3),]
谢谢ls的,但我不只是抽一次3对出来,而是抽10次,该怎么弄呢
二维码

扫码加我 拉你入群

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

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

2011-1-30 01:38:10
4# loicki
你循环一下就好了呀
二维码

扫码加我 拉你入群

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

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

2011-1-30 04:07:38
5# ltx5151

谢谢楼上,我终于解决了,代码可以是:
x<-c(3,6,4,7,1)
y<-c(5,8,2,9,0)
xy<-cbind(x,y)
xy_sample<-function(xy){
mysample<-xy[sample(1:5,3),]
mysample
}
res<-list()
length(res)<-10
for (i in 1:10){
res[]=xy_sample(xy)
}
res

但又有一个后续问题,我又编了一段代码:
f<-function(h){
   xk<-res[[h]][,1]
   yk<-res[[h]][,2]
   a<-sum(xk*yk)
   return(a)
   }
然后f(1),f(2)输出都是对的,但是如果我想输出f(1:10),就出现错误 Error in res[[h]] : recursive indexing failed at level 2
请问这是为什么?该如何解决呢
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

分享

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