Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- generuj <- function(klasy, mu, fname, n)
- {
- length_k <- length(klasy)
- stopifnot(is.character(klasy),length_k>=1)
- stopifnot(is.numeric(mu), length_k==length(mu))
- stopifnot(is.numeric(n),is.double(n),length(n)==1,n%%1==0)
- stopifnot(is.character(fname),length(fname)==1)
- # zmienic nazwe do_pliku
- do_pliku <- paste("\"klasa\"","\"wartosc\"",collapse='', sep=',')
- f <- file(fname, encoding = "latin2", 'w')
- writeLines(do_pliku, f)
- i<-1
- while(i<=n)
- {
- ktory <- sample(length_k,1)
- wartosc <- rnorm(1,mean=mu[ktory], sd=1)
- czesc_1 <- paste('"',klasy[ktory],'"')
- do_pliku <- paste(czesc_1,wartosc, sep=',')
- writeLines(do_pliku, f)
- i<-i+1
- }
- close(f)
- }
- podsumuj<-function(fname){
- library("stringi")
- stopifnot(is.character(fname),length(fname)==1)
- #wektor na nazwy klas, zakladam że klas bedzie co najwyzej 100
- nazwy<-character(100)
- liczba_klas<-0 #liczba klas
- #wektor na suma wartosci dla klas:
- wartosci<-numeric(100)
- #wektorr na liczbe obserwacji w klasach:
- ile<-numeric(100)
- f<-file(fname,encoding="latin2",open="r")
- # wczytuje naglowek
- naglowek <- readLines(f, n=1)
- while (length(wiersze<-readLines(f,n=100))>0){
- #liczba wczytanych wiersza ( w ostatnim obrocie petli
- #moze byc mniejsza)
- m<-length(wiersze)
- # odzdzielenie slow
- w<-stri_extract_all_words(wiersze)
- #slowa <- stri_extract_all_words(wiersze)
- for (i in 1:m){
- klasa<-w[[i]][[1]]
- wartosc<-w[[i]][[2]]
- wartosc<-as.numeric(wartosc)
- #sprawdzamy czy klasa juz byla wczesniej wczytana:
- j<-which(nazwy==klasa)
- if (length(j)==0){
- liczba_klas<-liczba_klas+1
- wartosci[liczba_klas]=wartosc
- ile[liczba_klas]=1
- nazwy[liczba_klas]=klasa
- } else{
- wartosci[j]<-wartosci[j]+wartosc
- ile[j]<-ile[j]+1
- }
- }
- }
- wartosci<-wartosci[1:liczba_klas]/ile[1:liczba_klas]
- names(wartosci)<-nazwy[1:liczba_klas]
- close(f)
- wartosci
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement