全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2986 12
2016-04-28

想从一个数据库中反复抽取样本,每个样本赋一个名称,如何实现。
如,从data数据库中抽样10次,分别为samp1, samp2,……samp10。
请问如何实现,谢谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2016-4-28 22:26:45
可以使用assign()函数
二维码

扫码加我 拉你入群

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

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

2016-4-28 23:05:21
毓闻 发表于 2016-4-28 22:26
可以使用assign()函数
谢谢,不过您能否再具体一些,还是不太会用。R小白一枚
二维码

扫码加我 拉你入群

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

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

2016-4-28 23:14:44
sample_names = paste0("samp", 1:10)
for (sample_name in sample_names) assign(sample_name, sample(1:10,2))

以上只是简单示例,你需要把sample(1:10,2)的部分改为你从数据库中取出样本的R命令
二维码

扫码加我 拉你入群

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

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

2016-4-29 21:21:26
毓闻 发表于 2016-4-28 23:14
sample_names = paste0("samp", 1:10)
for (sample_name in sample_names) assign(sample_name, sample(1: ...
非常感谢!您的代码确实实现了重复命名。
不过我还是挺笨的,没有办法实现循环。
下面是我编的代码,
samp_names <- paste0("samp",1:nrow(x))
for (sample_name in sample_names) assign(sample_name, x[sample(1:nrow(x),nrow(x),replace=TRUE),])
{
   a[m]<-0
   b[m]<-0
   c[m]<-0
   d[m]<-0
   e[m]<-0
   f[m]<-0
for (i in 1:nrow(x))
  { if(samp_name$snp==1 & samp_name$group==0) a[m]<-a[m]+1
   else if(samp_name$snp==2 & samp_name$group==0) b[m]<-b[m]+1
   else if(samp_name$snp==3 & samp_name$group==0) c[m]<-c[m]+1
   else if(samp_name$snp==1 & samp_name$group==1) d[m]<-d[m]+1
   else if(samp_name$snp==2 & samp_name$group==1) e[m]<-e[m]+1
   else if(samp_name$snp==3 & samp_name$group==1) f[m]<-f[m]+1
}
at[m]<-((e*a)/(d*b))
aa[m]<-((f*a)/(d*c))
}

还请看看问题在哪里,谢谢!
二维码

扫码加我 拉你入群

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

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

2016-5-1 19:59:36
提示: 作者被禁止或删除 内容自动屏蔽
二维码

扫码加我 拉你入群

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

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

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

分享

扫码加好友,拉您进群