產生亂數因果資料

說明

    • 產生 樣本數:numOfSample=70, 樣本平均數:meanOfSample=3, 樣本標準差:sdOfSample=1, 樣本差異微調閥值:diffOfSample=0.8

原始碼

spawnData <- function(numOfSample, meanOfSample, sdOfSample, diffOfSample) { set.seed(1) Y <- floor(rnorm(numOfSample, meanOfSample, sdOfSample)) Y1 <- ceiling(runif(numOfSample, Y-diffOfSample*runif(1), Y+diffOfSample*runif(1))) Y2 <- ceiling(runif(numOfSample, Y-diffOfSample*runif(1), Y+diffOfSample*runif(1))) Y3 <- ceiling(runif(numOfSample, Y-diffOfSample*runif(1), Y+diffOfSample*runif(1))) M1 <- ceiling(runif(numOfSample, Y-diffOfSample*runif(1), Y+diffOfSample*runif(1))) M2 <- ceiling(runif(numOfSample, Y-diffOfSample*runif(1), Y+diffOfSample*runif(1))) M3 <- ceiling(runif(numOfSample, Y-diffOfSample*runif(1), Y+diffOfSample*runif(1))) D11 <- ceiling(runif(numOfSample, Y-diffOfSample*runif(1), Y+diffOfSample*runif(1))) D12 <- ceiling(runif(numOfSample, Y-diffOfSample*runif(1), Y+diffOfSample*runif(1))) D13 <- ceiling(runif(numOfSample, Y-diffOfSample*runif(1), Y+diffOfSample*runif(1))) D21 <- ceiling(runif(numOfSample, Y-diffOfSample*runif(1), Y+diffOfSample*runif(1))) D22 <- ceiling(runif(numOfSample, Y-diffOfSample*runif(1), Y+diffOfSample*runif(1))) D23 <- ceiling(runif(numOfSample, Y-diffOfSample*runif(1), Y+diffOfSample*runif(1))) T1 <- ceiling(runif(numOfSample, Y-diffOfSample*runif(1), Y+diffOfSample*runif(1))) T2 <- ceiling(runif(numOfSample, Y-diffOfSample*runif(1), Y+diffOfSample*runif(1))) T3 <- ceiling(runif(numOfSample, Y-diffOfSample*runif(1), Y+diffOfSample*runif(1))) R11 <- ceiling(runif(numOfSample, Y-diffOfSample*runif(1), Y+diffOfSample*runif(1))) R12 <- ceiling(runif(numOfSample, Y-diffOfSample*runif(1), Y+diffOfSample*runif(1))) R13 <- ceiling(runif(numOfSample, Y-diffOfSample*runif(1), Y+diffOfSample*runif(1))) R21 <- ceiling(runif(numOfSample, Y-diffOfSample*runif(1), Y+diffOfSample*runif(1))) R22 <- ceiling(runif(numOfSample, Y-diffOfSample*runif(1), Y+diffOfSample*runif(1))) R23 <- ceiling(runif(numOfSample, Y-diffOfSample*runif(1), Y+diffOfSample*runif(1))) sem.data_source <- cbind(Y1, Y2, Y3, M1, M2, M3, D11, D12, D13, D21, D22, D23, T1, T2, T3, R11, R12, R13, R21, R22, R23) sem.data <- matrix(nrow=0, ncol=21) wrongRowCount <- 0 for (i in seq(1, numOfSample)) { if ((sem.data_source[i,"Y1"]*sem.data_source[i,"Y2"]*sem.data_source[i,"Y3"] * sem.data_source[i,"M1"]*sem.data_source[i,"M2"]*sem.data_source[i,"M3"] * sem.data_source[i,"T1"]*sem.data_source[i,"T2"]*sem.data_source[i,"T3"] * sem.data_source[i,"D11"]*sem.data_source[i,"D12"]*sem.data_source[i,"D13"] * sem.data_source[i,"D21"]*sem.data_source[i,"D22"]*sem.data_source[i,"D23"] * sem.data_source[i,"R11"]*sem.data_source[i,"R12"]*sem.data_source[i,"R13"] * sem.data_source[i,"R21"]*sem.data_source[i,"R22"]*sem.data_source[i,"R23"] == 0) || (sem.data_source[i,"Y1"]==6 || sem.data_source[i,"Y2"]==6 || sem.data_source[i,"Y3"]==6) || (sem.data_source[i,"M1"]==6 || sem.data_source[i,"M2"]==6 || sem.data_source[i,"M3"]==6) || (sem.data_source[i,"T1"]==6 || sem.data_source[i,"T2"]==6 || sem.data_source[i,"T3"]==6) || (sem.data_source[i,"D11"]==6 || sem.data_source[i,"D12"]==6 || sem.data_source[i,"D13"]==6) || (sem.data_source[i,"D21"]==6 || sem.data_source[i,"D22"]==6 || sem.data_source[i,"D23"]==6) || (sem.data_source[i,"R11"]==6 || sem.data_source[i,"R12"]==6 || sem.data_source[i,"R13"]==6) || (sem.data_source[i,"R21"]==6 || sem.data_source[i,"R22"]==6 || sem.data_source[i,"R23"]==6) ) { wrongRowCount = wrongRowCount + 1 } else { sem.data <- rbind(sem.data, sem.data_source[i,]) } } print(wrongRowCount) sem.data } sem.data <- spawnData(numOfSample=70, meanOfSample=3, sdOfSample=1, diffOfSample=0.8) # csvFile = "/Users/Rich Lee/Documents/MyData.csv" # write.csv(sem.data, file=csvFile)