summaryrefslogtreecommitdiff
path: root/R/R/pca.R
blob: 7d0d742457725e4727b0757b809e0383e4bc0dc2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
pca <- function(x, k=1, q=0.5, iters=10000){
  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),
    iters=as.integer(iters),
    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)
}