First of all, prcomp does a principal component analysis. A principal component analysis makes as many components as there are variables. What you're looking for, is a factor analysis:
ff <- factanal(data,20)
see ?factanal
If you want to keep only the first 20 principal components as a new dataset, you can easily select them from the predict() function. Or even calculate them yourself :
x <- prcomp(USArrests, scale = TRUE)
tt <- predict(x) # the standard way
# below the matrix way
tt2 <- scale(USArrests,x$center,x$scale) %*% x$rotation
# with only 3 components instead of 4
tt3 <- predict(x)[,1:3]
tt4 <- scale(USArrests,x$center,x$scale) %*% x$rotation[,1:3]
But be aware of the fact that a factor analysis reducing your dataset to 20 factors is NOT the same as keeping the first 20 principal components of a PCA.