Ответ: вам не нужно pc $ вращение, это матрица вращения, а не матрица повернутых значений (баллов).
Составьте некоторые данные:
x1 = runif(100)
x2 = runif(100)
y = rnorm(2+3*x1+4*x2)
d = cbind(x1,x2)
pc = prcomp(d)
dim(pc$rotation)
## [1] 2 2
К сожалению. Компонент "х" - это то, что мы хотим. От? Prcomp:
x: если «retx» равно true, возвращается значение повернутых данных (центрированные (и масштабированные, если требуется) данные, умноженные на матрицу «вращения»).
dim(pc$x)
## [1] 100 2
lm(y~pc$x[,1]+pc$x[,2])
##
## Call:
## lm(formula = y ~ pc$x[, 1] + pc$x[, 2])
## Coefficients:
## (Intercept) pc$x[, 1] pc$x[, 2]
## 0.04942 0.14272 -0.13557