作者jpt (You'll Never Walk Alone)
站內Statistics
標題[程式] 合併迴圈內長度不等的變數
時間Fri Jan 25 20:58:53 2013
[軟體程式類別]:
R
[程式問題]:
合併迴圈內的變數
[軟體熟悉度]:
中(3個月到1年)
[問題敘述]:
我在寫程式時遇到一些困擾,當k=1時,會得到30個數字,
當k=2時,會得到41個數字,每次得到的數字個數都不盡相同,
一共會得到7994個數字
我想把這些數字全部集合起來,放在一個矩陣或是data frame裡面,
程式寫到一半就不知該如何寫下去了,maize是我的dataset,
我想請問程式碼該如何寫會比較好
感謝
[程式範例]:
new.data<-matrix(0,7994,1)
distance<-seq(0.75,75,by=0.75)
for(k in 1: 100)){
resampling<-sample(which(maize$x1==distance[k]),replace=T)
data <- list(NULL)
data[[k]]<-resampling
}
-----------------------------------------------------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.120.190.17
※ 編輯: jpt 來自: 140.120.190.17 (01/25 20:59)
※ 編輯: jpt 來自: 140.120.190.17 (01/25 21:02)
1F:→ clickhere:help("list") 01/25 23:13
2F:→ jpt:可以拜託再說詳細點嗎? 01/26 02:02
※ 編輯: jpt 來自: 1.165.160.191 (01/26 02:33)
3F:→ gsuper:data <- list(NULL) ; data[[k]] <- 當次迴圈產生的資料 01/26 20:01
4F:推 lin15:只有一個值應該用c()起來就可以了吧? 01/26 21:08
※ 編輯: jpt 來自: 1.165.160.191 (01/26 22:14)
5F:→ jpt:g大,我照著你的方式試了,可以建立出一個有1-100層的list 01/26 22:18
6F:→ jpt:可data[[1]]到data[[99]]的值都是NULL,可以再請你指點一下嗎 01/26 22:20
7F:→ jpt:l大,用c()的話,那()裡面要填什麼啊? 可以也請你指點一下嗎? 01/26 22:24
8F:→ jpt:非常感謝各位的幫忙~ 01/26 22:47
9F:推 sandows:你是說一次resample 會有7994個數字 然後要湊成dataframe? 01/26 23:26
10F:→ jpt:是跑一次迴圈會得到7994個數字, 而每一次的resampling 01/26 23:32
11F:→ jpt:會得到個數不全然相同的數字,可能是33,40,60,每次都不一樣 01/26 23:33
12F:→ jpt:根據maize$x1==distance[k]裡的個數決定 01/26 23:34
13F:→ sandows:那你應該知道最多會有幾個數字 做一個矩陣 例如60x100 01/26 23:38
14F:→ sandows:然後把33個數字後面補27個0或是負數填進去就好了 01/26 23:39
15F:→ sandows:之後你要處理就把那些0或負數篩選掉 01/26 23:40
16F:→ jpt:我試試看~ 01/26 23:59
17F:→ jpt:感謝sandows, 終於弄出來了 ! 01/27 00:08
18F:→ sandows:OK that's good 01/27 00:27
19F:→ lin15:迴圈外a<-NULL 迴圈內a<-c(a,output) 接起來就好 01/27 01:09
20F:→ jpt:我也來試看看 01/27 11:59