summaryrefslogtreecommitdiff
path: root/R/R/pca.R
diff options
context:
space:
mode:
Diffstat (limited to 'R/R/pca.R')
-rw-r--r--R/R/pca.R18
1 files changed, 18 insertions, 0 deletions
diff --git a/R/R/pca.R b/R/R/pca.R
new file mode 100644
index 0000000..85782e4
--- /dev/null
+++ b/R/R/pca.R
@@ -0,0 +1,18 @@
+pca <- function(x, k=1,q=0.5){
+ n <- nrow(x)
+ d <- ncol(x)
+ B <- matrix(0, n, k)
+ U <- matrix(0, d, k)
+ l <- 0
+
+ res <- .C("pca_wrapper",
+ n=as.integer(n),
+ d=as.integer(d),
+ q=as.numeric(q),
+ k=as.integer(k),
+ X=as.numeric(t(x)),
+ B=as.numeric(B),
+ U=as.numeric(U),
+ l=l)
+ list(B=matrix(res$B,n,k,T),U=matrix(res$U,d,k,T), Y=matrix(res$X,n,d,T), l=res$l)
+}