作者tyjgary (阿丁)
看板Statistics
标题Re: [问题]R怎麽做资料矩阵比较快
时间Thu Apr 2 00:49:30 2009
※ 引述《FDBDB (TEJ)》之铭言:
: 请问板上各位高手
: 当我今天先行给定两个变数各 n 个值(如以下的greed1和greed2)
: 而我想利用这些值做出 n^2 种组合
: 并把其写成一成 (n^2)*2 之资料矩阵
: 以下是我自己就n等於12的时候写出来之矩阵
: 但一旦n改变则全部都要变动
: 想请问有哪种比较一般化的语法比较适合写这种矩阵吗
: 麻烦各位了
: greed1<-c(0.6000000, 0.6272727, 0.6545455, 0.6818182, 0.7090909, 0.7363636, 0.7636364, 0.7909091, 0.8181818, 0.8454545, 0.8727273, 0.9000000)
: alpha1<-as.matrix(greed1)
: greed2<-c(0.3000000, 0.3272727, 0.3545455, 0.3818182, 0.4090909, 0.4363636, 0.4636364, 0.4909091, 0.5181818, 0.5454545, 0.5727273, 0.6000000)
: alpha2<-as.matrix(greed2)
: alpha1_2=matrix(data=NA,nrow=(dim(alpha1)[1]*dim(alpha2)[1]),ncol=2,byrow=T)
使用 rep 抓取 matrix data
alpha1_2[,1]<-alpha1[rep(1:12,each=12),]
alpha1_2[,2]<-alpha2[rep(1:12,12),]
: alpha1_2[1:12,1] =alpha1[1,]
: alpha1_2[13:24,1] =alpha1[2,]
: alpha1_2[25:36,1] =alpha1[3,]
: alpha1_2[37:48,1] =alpha1[4,]
: alpha1_2[49:60,1] =alpha1[5,]
: alpha1_2[61:72,1] =alpha1[6,]
: alpha1_2[73:84,1] =alpha1[7,]
: alpha1_2[85:96,1] =alpha1[8,]
: alpha1_2[97:108,1]=alpha1[9,]
: alpha1_2[109:120,1]=alpha1[10,]
: alpha1_2[121:132,1]=alpha1[11,]
: alpha1_2[133:144,1]=alpha1[12,]
: for (b in 1:12){
: alpha1_2[b,2]=alpha2[b,]
: }
: for (c in 13:24){
: alpha1_2[c,2]=alpha2[c-12,]
: }
: for (d in 25:36){
: alpha1_2[d,2]=alpha2[d-24,]
: }
: for (e in 37:48){
: alpha1_2[e,2]=alpha2[e-36,]
: }
: for (f in 49:60){
: alpha1_2[f,2]=alpha2[f-48,]
: }
: for (g in 61:72){
: alpha1_2[g,2]=alpha2[g-60,]
: }
: for (h in 73:84){
: alpha1_2[h,2]=alpha2[h-72,]
: }
: for (j in 85:96){
: alpha1_2[j,2]=alpha2[j-84,]
: }
: for (k in 97:108){
: alpha1_2[k,2]=alpha2[k-96,]
: }
: for (l in 109:120){
: alpha1_2[l,2]=alpha2[l-108,]
: }
: for (m in 121:132){
: alpha1_2[m,2]=alpha2[n-120,]
: }
: for (n in 133:144){
: alpha1_2[n,2]=alpha2[m-132,]
: }
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.204.140.146
1F:推 FDBDB:谢谢你 太感激了 04/02 15:45