Wypowiedzi
-
w opcja opis$klasa to Twoje pole "Group". Tyle że zamiast dwóch grup wpisujesz 4, bo masz 4 grupy: controle, PCS, LIS, sham
może to wyglądać tak: K1 = Group== "controle"; K2=Group =="PCS"; K3=Group=="LIS"; K4=Group=="sham"
Oczywiście w dalszej części musisz wykonać points także 4 krotnie, dla każdej grupy z osobna -
Najlepszym rozwiązaniem do wczytywania dużych danych w R jest polecenie read.table. Niestety, zarządzanie pamięcią w R jest jedną z jego podstawowych wad, dlatego wielkość plików które da się wczytać zależy od ilości naszego RAM. Przy 4GB RAM da się wczytać pliki ~2GB, przy dobrze skonfigurowanym systemie (Win7 64bit). Przy tak dużych danych R często nie daje sobie rady nawet z najprostszymi pętlami. Dobrym rozwiązaniem, a czasami jedynym wyjściem staje się wtedy Perl lub C.
-
Do obliczeń równoległych w R dobrze sprawdza się funkcja lapply. To pętla odpowiadająca poleceniu for które stosujesz.
-
Może ja spróbuję pomóc.
Żeby zrobić PCA na danych które posiadasz (dane) i pliku opisu próbek, w którym masz przynależność próbek do klas (opis$klasa) można policzyć i narysować PCA w taki sposób:
pca_matrix = prcomp(t(dane), center=TRUE) #tutaj robimy analizę głównych składowych PCA
K1 = opis$klasa == "klasa1" #tutaj oznaczamy próbki z klasy 1 i 2 flagami TRUE
K2 = opis$klasa == "klasa2"
plot(pca_matrix$x[,c(1,2)]) #tutaj rysujemy pierwszą i drugą składową główną (źrodła #największej wariancji w zbiorze)
points(pca_matrix$x[K1,c(1,2)],pch = 15, col = "red", cex = 1) # oznaczamy klasy kolorami
points(pca_matrix$x[K2,c(1,2)],pch = 15, col = "blue", cex = 1)
legend("bottomleft", legend = c("K1","K2"), col = c("red","blue"), pch = 15, cex = 1.4) #legenda
text(pca_matrix$x[,c(1,2)], labels = rownames(dane), pos=1, cex = 0.5) #podpisy próbek
title("1st and 2nd Principal Component in data analysis") #tytuł rysunku
Na uzyskanym rysunku próbki powinny się rozkładać na 2 grupy (klastry) co potwierdzi zróżnicowanie danych.
W razie dalszych problemów, chętnie pomogę.
Tomek