アセンブリラインをシミュレートしようとしています。私は部品のリストと各ステーションでどれくらいの時間を費やしているのですか?私は一度に1つずつ組立ラインを通ってパーツを送り、各ステーションで時間を記録しようとしています。しかし、私がこの作業をする方法は、forループをforループの中に入れ子にすることです。これを行うにはよりよい方法が必要です。forループによるベクトル化のベクトル化
parts <- data.frame(JobNum = sample(c('a','b','c','d'),400,replace=TRUE)
,DS.CT = sample.int(10,400,replace=TRUE)
,C1.CT = sample.int(10,400,replace=TRUE)
,C2.CT = sample.int(10,400,replace=TRUE)
,C3.CT = sample.int(10,400,replace=TRUE)
,C4.CT = sample.int(10,400,replace=TRUE)
,C5D5.CT = sample.int(10,400,replace=TRUE)
,C6D6.CT = sample.int(10,400,replace=TRUE)
,C5D7.CT = sample.int(10,400,replace=TRUE)
,C6D8.CT = sample.int(10,400,replace=TRUE)
,C7CD.CT = sample.int(10,400,replace=TRUE)
)
LineParts <- parts[sample(nrow(parts),234,replace=FALSE),]
#Initialize Dip collecting variables
DS <- c()
D1 <- c()
D2 <- c()
D3 <- c()
D4 <- c()
D5 <- c()
D6 <- c()
D7 <- c()
D8 <- c()
D9 <- c()
for(i in 1:dim(parts)[1]){
#Create temporary dataframe for use in indexing line
LinePartsTemp <- data.frame(matrix("",nrow=234,ncol=11))
colnames(LinePartsTemp)=names(LineParts)
LinePartsTemp$JobNum <- as.character(LinePartsTemp$JobNum)
LinePartsTemp$DS.CT <- as.integer(LinePartsTemp$DS.CT)
LinePartsTemp$C1.CT <- as.integer(LinePartsTemp$C1.CT)
LinePartsTemp$C2.CT <- as.integer(LinePartsTemp$C2.CT)
LinePartsTemp$C3.CT <- as.integer(LinePartsTemp$C3.CT)
LinePartsTemp$C4.CT <- as.integer(LinePartsTemp$C4.CT)
LinePartsTemp$C5D5.CT <- as.integer(LinePartsTemp$C5D5.CT)
LinePartsTemp$C6D6.CT <- as.integer(LinePartsTemp$C6D6.CT)
LinePartsTemp$C5D7.CT <- as.integer(LinePartsTemp$C5D7.CT)
LinePartsTemp$C6D8.CT <- as.integer(LinePartsTemp$C6D8.CT)
LinePartsTemp$C7CD.CT <- as.integer(LinePartsTemp$C7CD.CT)
#Index line
for(j in 1:dim(LineParts)[1]){
LinePartsTemp[j+1,] <- LineParts[j,]
}
#put new part into system
LinePartsTemp[1,] <- parts[i,]
#update the list of parts on the line
LineParts <- LinePartsTemp
#Append CT values at stations
DS <- append(DS,LineParts[1,'DS.CT'])
D1 <- append(D1,LineParts[10,'C1.CT'])
D2 <- append(D2,LineParts[26,'C2.CT'])
D3 <- append(D3,LineParts[42,'C3.CT'])
D4 <- append(D4,LineParts[57,'C4.CT'])
D5 <- append(D5,LineParts[85,'C5D5.CT'])
D6 <- append(D6,LineParts[120,'C6D6.CT'])
D7 <- append(D7,LineParts[167,'C5D7.CT'])
D8 <- append(D8,LineParts[210,'C6D8.CT'])
D9 <- append(D9,LineParts[234,'C7CD.CT'])
}
EDIT:追加サンプルデータ
:ポストされたサンプルデータでテストするには、サンプル種、
set.seed(###)
、前部品とLineParts同じ乱数を再実行する割り当ての両方に設定する必要がありますあなたのコードの束を保存します。繰り返しタスクの代わりに 'LinePartsTemp [c(" var1 "、" var2 ")] < - lapply(LinePartsTemp [c(" var1 "、" var2 ")]、as.integer)いくつかの単純化されたデータで再現可能な例を提供すれば、答えを得る可能性がさらに高まります。 – thelatemailありがとう、私はいくつかのサンプルデータを追加し、lapplyを調べます。 –