Last active
December 22, 2015 10:19
-
-
Save andilabs/6457829 to your computer and use it in GitHub Desktop.
R generating random data with given distribution
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Andrzej Kostanski adnrzej.kostanski@gmail.com | |
# sciezka do pliku z danym wejsciowymi | |
input_path<-"/Users/andi/Desktop/EM-ALGORITHM/r-generowanie/input.csv" | |
output_path<-"/Users/andi/Desktop/EM-ALGORITHM/r-generowanie/output.csv" | |
con<-file(input_path) | |
# n oznacza liczbe wszystkich losowan | |
n<-readLines(con,1) | |
close(con) | |
# rozklady okreslone parametrami tau i mi, oraz pradopodobienstwo ich wyboru | |
rozklady<-read.csv(input_path,skip=1,header=TRUE) | |
# losuje n-razy rozklady zgodnie z prawdopodibenstwem ich wystapienia (tau), w liście zapisuję indeksy | |
idx<-sample(1:nrow(rozklady),size=n,replace=TRUE,prob=rozklady$tau) | |
# deklarujemy pusty data frame z 2 kolumnami na n wierszy (bardziej efektywnie niz pusty a potem w kazdej iteracji rozszerzac) | |
output<-data.frame(X = numeric(n), Klasa = character(10), stringsAsFactors=FALSE) | |
# iterujemy by wylosowac liczby zgodnie z rodzajem rozkladu wylosowanym wczesniej, zapisujemy do outputs otrzymana wartosci i informacje nt klasy rozkladu | |
for (i in 1:n){ | |
val<-rnorm(1, rozklady[idx[i],]$tau, rozklady[idx[i],]$sigma ) | |
output[i,]<-c(val,LETTERS[idx[i]]) | |
} | |
# zapis do pliku n par x, klasa | |
write.csv(output,output_path,row.names=FALSE) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment