ICA <- function(num, test, f1, f2) { test.ica <- fastICA(as.matrix(test$x), n.comp=num) test.ica$K%*%test.ica$W -> A write.matrix.csr(as.matrix.csr(t(A)), file=f1) write.matrix.csr(as.matrix.csr(test.ica$S),y=test$y,file=f2) } ============================================================= 安裝package install.packages("randomForest", lib = ".", destdir = ".") ^^^^^^^^^ ^^^^^^^^^^^^^ 安裝目錄 下載目錄 install.packages("fastICA",lib =".",destdir = ".") install.packages("SparseM",lib = ".",destdir = ".") install.packages("e1071",lib =".",destdir = ".") .libPaths() <-查看現在library目錄 .libPaths(path.expand(".")) <-調換現在library目錄 library(fastICA) <-load fastICA package read.matrix.csr("test.csv.out") -> test as.matrix(test$x)-> test.data test.ica <- fastICA(test.data, n.comp=3) test.ica$K%*%test.ica$W -> A as.matrix.csr(A, nrow = 7, ncol = 3) -> A.csr write.matrix(A.csr, file="A1.out") ============================================================= 5.6 陣列的廣義轉置 函數 aperm(a, perm) 可以用來重排一個陣列 a。參數 perm 可以是 {1, ..., k}的一個排列,其中 k 是 a 的下標數目。這個函數將產生一個和a大小一致的陣列,不過舊的維度 perm[j]將會變成第j個維度。這種操作實際上是對矩陣的一種廣義轉置。實際上,如果 A是一個矩陣( 雙下標陣列), 那麼 B > B <- aperm(A, c(2,1)) 僅僅是 A 的一個轉置。這種情況下,有一個簡單的函數 t() 可以使用。因此,我們可以用命令 B <- t(A)代替上面的語句。 matrix.csr 矩陣類別的線上說明 http://rss.acs.unt.edu/Rdoc/library/SparseM/html/matrix.csr-class.html