Last chance! 50% off unlimited learning
Sale ends in
dudi.pca
performs a principal component analysis of a data frame and
returns the results as objects of class pca
and dudi
.
dudi.pca(df, row.w = rep(1, nrow(df))/nrow(df),
col.w = rep(1, ncol(df)), center = TRUE, scale = TRUE,
scannf = TRUE, nf = 2)
a data frame with n rows (individuals) and p columns (numeric variables)
an optional row weights (by default, uniform row weights)
an optional column weights (by default, unit column weights)
a logical or numeric value, centring option if TRUE, centring by the mean if FALSE no centring if a numeric vector, its length must be equal to the number of columns of the data frame df and gives the decentring
a logical value indicating whether the column vectors should be normed for the row.w weighting
a logical value indicating whether the screeplot should be displayed
if scannf FALSE, an integer indicating the number of kept axes
Returns a list of classes pca
and dudi
(see dudi) containing the used information
for computing the principal component analysis :
the data frame to be analyzed depending of the transformation arguments (center and scale)
the column weights
the row weights
the eigenvalues
the rank of the analyzed matrice
the number of kept factors
the column normed scores i.e. the principal axes
the row normed scores
the column coordinates
the row coordinates i.e. the principal components
the call function
the p vector containing the means for variables (Note that if center = F
, the vector contains p 0)
the p vector containing the standard deviations for variables i.e. the root
of the sum of squares deviations of the values from their means divided by n (Note that if norm = F
, the vector contains p 1)
prcomp
, princomp
in the mva
library
# NOT RUN {
data(deug)
deug.dudi <- dudi.pca(deug$tab, center = deug$cent, scale = FALSE, scan = FALSE)
deug.dudi1 <- dudi.pca(deug$tab, center = TRUE, scale = TRUE, scan = FALSE)
if(adegraphicsLoaded()) {
g1 <- s.class(deug.dudi$li, deug$result, plot = FALSE)
g2 <- s.arrow(deug.dudi$c1, lab = names(deug$tab), plot = FALSE)
g3 <- s.class(deug.dudi1$li, deug$result, plot = FALSE)
g4 <- s.corcircle(deug.dudi1$co, lab = names(deug$tab), full = FALSE, plot = FALSE)
G1 <- rbindADEg(cbindADEg(g1, g2, plot = FALSE), cbindADEg(g3, g4, plot = FALSE), plot = TRUE)
G2 <- s1d.hist(deug.dudi$tab, breaks = seq(-45, 35, by = 5), type = "density", xlim = c(-40, 40),
right = FALSE, ylim = c(0, 0.1), porigin.lwd = 2)
} else {
par(mfrow = c(2, 2))
s.class(deug.dudi$li, deug$result, cpoint = 1)
s.arrow(deug.dudi$c1, lab = names(deug$tab))
s.class(deug.dudi1$li, deug$result, cpoint = 1)
s.corcircle(deug.dudi1$co, lab = names(deug$tab), full = FALSE, box = TRUE)
par(mfrow = c(1, 1))
# for interpretations
par(mfrow = c(3, 3))
par(mar = c(2.1, 2.1, 2.1, 1.1))
for(i in 1:9) {
hist(deug.dudi$tab[,i], xlim = c(-40, 40), breaks = seq(-45, 35, by = 5),
prob = TRUE, right = FALSE, main = names(deug$tab)[i], xlab = "", ylim = c(0, 0.10))
abline(v = 0, lwd = 3)
}
par(mfrow = c(1, 1))
}
# }
Run the code above in your browser using DataLab