作者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