2012-03-14 35 views
-1

次のデータに対してループ処理を行いたいとします。単一の反復の出力はdata.frameです。私のコードは:各繰り返しの出力がdata.frameの場合のループ

Data <- structure(list(v = c(15L, 15L, 15L, 15L, 16L, 16L, 16L, 17L, 
17L, 18L, 19L, 19L, 19L, 20L, 20L, 21L, 21L, 22L, 22L, 25L, 25L 
), b = c(35L, 70L, 42L, 35L, 20L, 48L, 16L, 68L, 68L, 51L, 57L, 
57L, 57L, 95L, 76L, 70L, 21L, 77L, 77L, 100L, 30L), r = c(7L, 
14L, 14L, 14L, 5L, 15L, 6L, 16L, 20L, 17L, 9L, 12L, 18L, 19L, 
19L, 10L, 5L, 14L, 21L, 12L, 6L), k = c(3L, 3L, 5L, 6L, 4L, 5L, 
6L, 4L, 5L, 6L, 3L, 4L, 6L, 4L, 5L, 3L, 5L, 4L, 6L, 3L, 5L), 
    lambda = c(1L, 2L, 4L, 5L, 1L, 4L, 2L, 3L, 5L, 5L, 1L, 2L, 
    5L, 3L, 4L, 1L, 1L, 2L, 5L, 1L, 1L)), .Names = c("v", "b", 
"r", "k", "lambda"), class = "data.frame", row.names = c(NA, 
-21L)) 

library(AlgDesign) 
BIB <- list() 
for(i in 1:nrow(Data)){ 
BIB[[i]] <- data.frame(optBlock(~., withinData = factor(1:Data[i, "v"]), blocksize = rep(Data[i, "k"], Data[i, "b"]))$Blocks) 
dimnames(BIB[[i]]) <- list(1:Data[i, "k"], paste("Block", 1:Data[i, "b"], sep = " ")) 
} 
BIB 

同じタスクを達成する簡単な方法があるのだろうかと思います。どんな助力も高く評価されます。ありがとう

答えて

0
BIB <- list() 
for(i in 1:nrow(Data)){ 
BIB[[i]] <- data.frame(optBlock(~., withinData = factor(1:Data[i, "v"]), blocksize = rep(Data[i, "k"], Data[i, "b"]))$Blocks) 
dimnames(BIB[[i]]) <- list(1:Data[i, "k"], paste("Block", 1:Data[i, "b"], sep = "_")) 
} 

print(BIB) 
関連する問題