R生成具有给定分布的随机数据

r
阅读 67 收藏 0 点赞 0 评论 0

gistfile1.r
# 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)
评论列表


问题


面经


文章

微信
公众号

扫码关注公众号